Fully Scalable Serverless Covid monitoring application built using Firebase π₯
Documentation: https://github.com/KrisTheCanadian/soen-390/wiki
Development Board: https://github.com/KrisTheCanadian/soen-390/projects/2
Documentation Board: https://github.com/KrisTheCanadian/soen-390/projects/3
- Add your firebase configuration in src/config/firebase_config.ts
npm install
npm run build
npm run start
Kimiya Derakhshani |
Kristopher Beauchemin |
Fadi Albasha |
Graeme Killick |
Militsa Bogdeva |
Martin Senecal |
Sami Merhi |
Ahmad Hashem |
Alexia Sousa |
During the recent years due to the spread of covid many people have been facing difficulties to find relevant medical resources that can help them to monitor their symptoms or ask for medical help. Furthermore doctors and medical staff have been working endlessly in the pandemic chaos and have been feeling overwhelmed. The purpose of this project is to create a user-friendly web application that can help the general public and the medical staff and reduce their stress even slightly through a smart managed medical system.
Four various users can benefit from this app, first group being the general public as they register to the website they will be asked to fill in a symptoms form that would indicate if they are infected or not if they are they would be assigned to a medical staff. These patients will be obligated to fill in a daily symptoms list and follow the instructions of their doctor to track the progress of the virus. Additionally they can initiate messages with their allocated doctor and be notified when they receive a new update. Second and third group of users would be the medical staff and admins. Admins will assign patients to each doctor and will be able to manage their schedules and patient list. Consequently doctors will be able to view a list of their patients and medical information along with initiating or responding to messages. If required a doctor can suggest a patient to schedule an appointment with them. The final group of users are the third party users who will be able to view a patientβs metadata and their health status.
The purpose of this document is to showcase an overview of different processes that had to take place in order to create this web application, how the development cycles were managed and how each step of the project was implemented from requirements gathering, design and development to working on unit, system and integration testing and QA. The targeted audience of this document would be any member of the public that is interested to know more about this web application and how the project came to be. Our team has worked hard to implement effective document design enhancements that would help with the readability and usability of this document.
This web application facilitates tracking covid symptoms and helps various users to know if their symptoms are relevant to covid, easily put them in contact with medical personnel and doctors and allow them to access various functionalities through the different user dashboards available. Consequently doctors, admins and third party users have their own special dashboards that are made up of various features and functionality depending on what they need access to. In order to follow scrum and manage the system development process our team was separated into 5 groups with their own specializations and a scrum master that would make sure the project is on track and can meet the deadlines following scrum rules. Each team was allocated to work on one or more of the following: documentation, frontend and user interface, backend and system architecture, testing and QA. Some members participate in more than one group, and everyone participates in weekly stand ups and reports on what they have completed, what they are working on now, and what they will be working on in the upcoming week. Additionally if anyone has encountered a project block the team would suggest various solutions that would help them to resolve the block and progress in what they were working on.
Agile development is a cycle of gathering requirements, design, development, testing, deployment to the production environment from sandbox and review. Agile can help each team to be flexible to requirement changes without negatively affecting the deadlines and the project process. Furthermore the frequent cooperation between the team members causes the team members to be in sync and helps the team to follow up with the product owner, know about requirement changes and improve their satisfaction by delivering a high quality application. In addition to requirement gathering, agile can help to iteratively and continuously improve our development and have adaptive planning through testings and reviews that are done in each cycle.
This repository is available under the GNU GENERAL PUBLIC LICENSE.