gaurav1881
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # UofT Faculty of Medicine Application Cost Calculator/TEAM 1 ## Product Details #### Q1: What are you planning to build? We are improving a website for pre-med students that allows users to obtain a general idea of the total cost they can expect to pay during their med school application process. Many applicants do not realize all of the expenses they will incur until they come up, so this product lets users know ahead of time these additional expenses so students can avoid surprise fees during the application process. The calculator takes into consideration transportation fees, application fees, med school examination fees, prep fees, and so on. Users check off which fees apply to them and the calculator will provide an estimate of the total cost. The website already exists, and so we will be improving its UI, implementing new features, fixing its architecture, making it customizeable, and making the it easier to maintain and update. #### Q2: Who are your target users? There are two target users for the website: 1. Med school applicants: these users can be in any stage of their application journey, from first-year pre med students wanting to get an idea of application costs years in advance, to grads who are currently in the process of applying to med schools, working on their application in July and applying by October. Most of these users will be Canadian students, however students from other countries looking to apply to Canadian med schools will find the service useful as well. ![](https://i.imgur.com/nMtpcrK.png) 2. Admin leaders who wish to see the cost implications of various services assiciated with applying to Canadian med schools. #### Q3: Why would your users choose your product? What are they using today to solve their problem/need? Firstly, there are very few similar products available, and they do not include as much detail as our product does. Secondly, the website includes links to resources related to the different steps of the application process (i.e. interview prep, MCAT prep, etc.), which greatly reduces the time a user would otherwise spend searching for those resources. Lastly, we will be adding functionality that will make the calculator customizeable, allowing users to input their personal exact costs, making the calculator's estimate as close as possible to the real-life cost of applying to med school. #### Q4: How will you build it? The website is written in JavaScript with HTML and CSS. React is used on the frontend and the site's data is stored on Firebase. It does not contain any CI/CD processes, so we will be adding devOps capabilities using GitHub Actions, and changes will be automatically deployed to the existing Firebase server. We will use react-bootstrap as our frontend framework to improve the UI, get access to generic modular components and reduce the amount of CSS styling required to make the page responsive. The project currently creates specific components separately for each page of the site; we will improve the site's architecture by creating modular components. We will use the Google maps API for automatically detecting locations and calculating the transportation costs (https://cloud.google.com/maps-platform/maps). To test our React application, we will use Jest and Mocha, and we will implement snapshot testing to test the UI. To make frontend development more efficient, we will use storybook: https://storybook.js.org/ #### Q5: What are the user stories that make up the MVP? - User Story: As an individual interested in applying to Canadian med school, I want to view an organized list of universities in order to find my desired universities faster. - Acceptance Criteria: Must be organized by province. - User Story: As an individual interested in applying to Canadian med school, I want to view a more organized application fees page in order to improve user experience. - Acceptance Criteria: Elements on the page are more conservative of space. - User Story: as an individual interested in applying to Canadian med school, I want be able to input the number of trips i require accommodation for in order to obtain a more realistic transporation cost. - Acceptance Criteria: Ablility to multiply the accommodations cost by the number of trips. - User Story: As an individual interested in applying to Canadian med school, I want to be able to specify my location in the transportation page in order to get a more realistic transporation calculation. - Acceptance Criteria: Transporation costs should be dependent on user location, which is automatically detected but can be manually changed. - User Story: As an administrator, I want to have no mentions of external companies in info popovers, in order to avoid promoting specific businesses and instead provide helpful messages. - Acceptance Criteria: There is no mention of external companies in any popovers - User Story: As an individual interested in applying to Canadian med school, I want to view my essential costs verses my non essential costs, in order to obtain a better understanding of the costs. - Acceptance Criteria: There must be some sort of visual indication of what fees got replaced with budget alternitives and display savings on the side. <!-- - User Story : As the admin, I would like to be able to see a list of all the users so that I can monitor the usage of the website Acceptance Criteria: Must be able to see a list of all users Must be able to see the total number of users Must be able to see the name of a user and when they were last active --> <!-- - User Story: As an admin, I would like to select a user so that I can inspect their profile and make corrections if necessary. Acceptance Criteria: Must be able to click into the profile of any user Must be able to change certain aspects of the profile that the user can not --> - User Story: As the admin of this website, I would like to have the admin role assigned to me and also have the ability to make other people a moderator to have better control/moderation over the website - Acceptance Criteria: Ability to make any user an admin. - User Story: As an admin, I would like to update the website to include updated information through the website so that I can keep the website a relevant tool for current students - Acceptance Criteria: Must be able to change values through the frontend. The data must be validated before pushing to the website to verify correctness. ---- ## Process Details #### Q6: What are the roles & responsibilities on the team? Team Lead *1 - Check in on progress of each member of the team. - Choose where to coordinate the team's effort. Client Rep *1 - Communication point between the partner Ike and the team. - Responsible for deliveringing the questions and discuss the meeting times, as well as updating the team's process with Ike. Prototype *5 - Responsible for designing the UI/UX of the website via Figma - Ensures that the product is developed based on the prototype Frontend *4 - Responsible for improving and adding features to the UI of the project - Review and merge frontend pull requests - Create snapshot tests to ensure UI works as expected Backend *2 - Responsible for improving and adding features to the backend of the project - Review and merge backend pull requests - Develop comprehensive tests to ensure backend logic works as expected DevOps *2 - Responsible for maintaining the CI/CD pipeline - Investigate any pipeline downtimes ### Gaurav #### Roles and Responsibilities - Frontend, Prototype #### Technical Strengths - Angular (Typescript, CSS, HTML) - Firebase - Python #### Technical Weaknesses - Express - NodeJS - Redux ### Jenna #### Roles and Responsibilities - Frontend, Backend, communicate between frontend and backend, Client Representation, Prototype #### Technical Strengths - ReactJS + React Bootstrap - NodeJS + Express - MongoDB #### Technical weaknesses - Redux - Firebase ### Killian #### Roles and Responsibilities - Team Lead, Backend, Prototype #### Technical Strengths - Python - Git/Github - Scrum #### Technical Weaknesses - Redux - NodeJS - NoSQL (Firebase) ### Emily #### Roles and Responsibilities - Frontend, Prototype, DevOps #### Technical Strengths - Python - Java - PostgreSQL #### Technical Weaknesses - Redux - Node.js - Express ### Sharjeel #### Roles and Responsibilities Frontend, Prototype, DevOps #### Technical Strengths - React - Redux - Javascript #### Technical Weaknesses - Express - Databases - NodeJS #### Q7: What operational events will you have as a team? The team has agreed upon conducting a weekly meeting every saturday for the remainder of the course. We plan to conduct to meetings via Google Hangouts, and take meeting notes on Google Docs. The purpose of each meeting is for the team to get caught up on in-progress tasks and to stay up-to-date on what each team member is working on. This will also provide an opportunity to know if there any roadblocks that the team should work on resolving, and make sure that no team member is stuck on anything for too long. This will also serve as a testing ground for any team member to present their work and get feedback from the rest of the team about it. The next move on the project will be discussed and tasks will be created for the following week. Meeting Minutes: https://docs.google.com/document/d/1-bwik26yhHH4DclnNbnfKUA2xsTEmthOYy8QlbgBY-Y/edit?usp=sharing ##### Meeting May 27th, 2-3pm: Our project partner Ike walked us through the existing website and explained the process of applying to medical school in Canada. He explained the different reasons a user would choose to use the website and provided some user stories. For each page of the website, he outlined what he would like us to improve; for example, on the page where users select which universities they plan on applying to, Ike asked us to change the order that the universities appear on the screen so that they are grouped by province. We also established a regular weekly meeting time with Ike of Tuesdays at 2pm. The outcome of the meeting is that we understood exactly what is expected of us and how we are expected to improve the website. ##### Meeting June 3rd, 12-12:30pm: We shared our user stories with Ike and he provided suggestions for improvement. He also suggested we begin with the most time-consuming functionality, which we anticipate will be calculating the transportation costs. This brought up a question about whether changes to the logic of the website can be done at the same time as UI improvements, and we believe that if the code is well-written and separates the backend from the frontend, both can be done in parallel. Ike also reiterated the target users for the site: student applicants at any stage of the application process and admin leaders who wish to see the cost implications of various services. Lastly, we changed our meeting time to every other Tuesday at 12pm to align with everyone's schedule. The outcome of this meeting was a confirmation that the user stories and target users we will be basing the functionality of the site on are aligned with what our project partner envisions, and so we are now ready to begin creating our prototype and improving and adding functionality to the website. #### Q8: What artifacts will you use to self-organize? In order to self-organize, we will be utilizing a trello board to practice agile development: https://trello.com/invite/b/HUbO5IJE/5d0de0e07379a9c1cd3b51a7481b6b1a/uoft-fom-calculator In order to keep track of what needs to be done, we will be creating tickets for each of the stories on trello. ![](https://i.imgur.com/xujym1Z.jpg) The tasks will be broken down into smaller parallelizable subtasks and will be assigned to the people from the appropriate teams. The task are prioritized based on what order they are in, in the todo column. Prioritized tickets are at the top and have a red colour, and less prioritized tickets are below. During weekly meeting we will divide the tickets and the assigned team member's name gets attached to the bottom of the ticket to indicate the ticket is assigned to them. To track the status of the work, we have multiple columns the tickets can be dragged into. The columns include To Do, Assigned, In Progress, Blocked, Done. Any ticket that is blocking another ticket should be prioritized. The tickets also have labels on them, indicating the type of task (frontend, backend, DevOp, UX, bug, story). We also have an Outlook Calendar that we share with our project partner that has all of our meeting times, and we will add deadlines to it as they come up. #### Q9: What are the rules regarding how your team works? **Communications:** At minimum, we will be having a weekly group meeting every Saturday via Google Hangouts. We also have a groupchat on Messenger where we discuss the project as needed, as well as a Slack channel where we communicate with the TA. We plan to meet with our partner every 2 weeks on Tuesdays at 2pm to discuss the progress that we have made over the past 2 weeks. This meeting will provide the team with the opportunity to showcase our work and get some feedback directly from our partner. We plan to keep our partner involved as much as possible and reaching out to him via email whenever time we have a product-related question. **Meetings:** If a team member cannot attend a meeting, they should notify the team atleast 24 hrs before the meeting, if possible. After the meeting, the team member should look at the meeting notes and the other team members will fill them in on what was discussed. <!-- If a team member cannot complete an item on time, they should notify the group and get help. --> **Conflict Resolution:** Non-responsive team members: try to reach out via the methods we have setup (messenger, weekly meeting, etc.), then notify the TA if the team member is still unresponsive. Indecisions: If at first we cannot come to an agreement, we will continue for a while to discuss the matter until we reach one. If there isn't enough time, we will set up a vote. Failing to meet deadlines: Check in with the team members not meeting deadlines and offer help. If we see that the workload for a certain role is too much (for example, much more frontend work than anticipated), then we will assign more team members to that role. ---- ### Highlights Specify 3 - 5 key decisions and/or insights that came up during your meetings and/or collaborative process. * Short (5 min' read max) * Decisions can be related to the product and/or the team process. * Mention which alternatives you were considering. * Present the arguments for each alternative. * Explain why the option you decided on makes the most sense for your team/product/users. * Essentially, we want to understand how (and why) you ended up with your current product and process plan. * This section is useful for important information regarding your decision making process that may not necessarily fit in other sections. We have assigned roles to each team member, however we have to decided to stay open to the idea of switching roles as we see fit once we begin working. This is because we do not yet know which areas require the most work. As of now, it appears the project is frontend-heavy, and so we assigned more people to work on the frontend than the backend; however, we may find that the backend tasks are more difficult than anticipated and divert more work there. We were also considering starting out with everyone doing fullstack and then assigning specific roles after we begin working, but we decided against this since we believe our work will be more productive if everyone knows exactly what they should be working on once we begin. About the frontend, we had to consider how to divide the work; we could either have people only design (looks only) and other do the actual implementation, or we instead have each us do the design and implementation of some specific features. Ultimately we decided that we will first come up together with the new looks/redesign of the website, and then we will be able to divide the features into chunks that can be design and implemented by one person. This the best option for our team since none of us are particularly interested in being solely responsible of the overall look of the website (or even have the skills to do so), furthermore dividing the work between designing and implementing might cause us to block each other, and finally designing the website first will allow us to get feedback quickly from the project owner.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully