Skip to content
This repository has been archived by the owner on May 2, 2022. It is now read-only.

SOEN 390 - Software Engineering Mini Capstone Project Concordia Winter 2022

License

Notifications You must be signed in to change notification settings

KrisTheCanadian/Protect-Together

Repository files navigation

Protect Together

Project Information πŸš€

GPLv3 license npm version

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

Running & Building the project πŸ”¨

  • Add your firebase configuration in src/config/firebase_config.ts
npm install
npm run build
npm run start

Team Members πŸ’ͺ πŸŽ‰


Kimiya Derakhshani

Kristopher Beauchemin

Fadi Albasha

Graeme Killick

Militsa Bogdeva

Martin Senecal

Sami Merhi

Ahmad Hashem

Alexia Sousa

Introduction πŸ“–

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.

Project Description πŸ“

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.

Application Look πŸ‘€

Login Screen

Login Screen

Register Screen

Register Screen

Patient Dashboard

Dashboard

Medical Staff Dashboard

Admin Dashboard

Third Party Dashboard

Patient Symptoms

Symptoms

Patient Appointments

Appointments

Medical Staff & Patient Chat

Notifications

Diagram πŸ“Š

Patient Use Case Diagram

Patient Use Cases

Medical Use Case Diagram

Medical Use Cases

Admin Use Case Diagram

Admin Use Cases

Firebase Serverless Architecture πŸ”₯

Patient Firebase Serverless Architecture

Patient Firebase

Medical Firebase Serverless Architecture

Medical Firebase

Medical Firebase Serverless Architecture

Admin Firebase

License πŸ“

This repository is available under the GNU GENERAL PUBLIC LICENSE.