Skip to content

janong24/Compass

 
 

Repository files navigation

Compass

A Wellness app for people of age 40+

Next JS NodeJS Firebase TypeScript TailwindCSS Docker Jest express postgresql fastAPI PyTest Jupyter Notebook

Getting Started

Clone the repo

git clone https://github.com/janong24/Compass.git
  • Please make sure you have Docker installed first.

  • Docker Desktop is recommended to help with managing the container, images, and volumes.

  • Make sure that the ports 3000, 8000 and 5432 are not occupied and the PostgreSQL server is not currently running on your local machine.

Add the credential files in the right places, you should have 3 in total:

  • one .env in the root folder
  • one .env in the client folder
  • a serviceAccountKey.json in the server folder

Those credential files contain the environment variables needed to run the project. If you encounter warning messages saying some variables are not set defaulting to a blank string, you are probably missing some environment variables in one of the three credential files. In this case, please contact the team leader to get the credentials.

Build and run the development version of the project

The docker compose file contains the commands to build and run the project. Please cd to the root folder (the Compass folder) and run:

For the express server and the nextjs frontend:

docker-compose -f docker-compose-dev.yml up

For the python server

First cd to the pythonServer folder:

cd pythonServer

Please make sure all the dependencies are installed on your local environment by running:

pip install -r requirements.txt
In addition to the requirements.txt, the library ffmpeg also needs to be set up on your local machine. The set up procedure depends on your OS and your local environment. Please check their website: https://www.ffmpeg.org/download.html

After all the dependencies are successfully installed, move to the app folder and run the server:

cd app
python3 main.py

If you are running the project in your local environment, the express server will be hosted on port 8000, the python server will be hosted on port 8080, the client will be hosted on port 3000 and the database will be hosted on post 5432

Once you see 'Database synchronized' and 'Uvicorn running on http://127.0.0.1:8080' are printed in the terminal, the preparation is done. If you want to check the database, you can either use the terminal or the Postgresql GUI like Pgadmin4 to see if all the tables/data exist in your database. Since the whole project is containerized, the database in the container is the not one you have locally. It can only be connected if the docker container is running. Please make sure to connect to the DB inside of the container instead of other local databases.

Open http://localhost:3000 with your browser to see the result.

If you add new packages or find that there's package update from the release which can cause a 'module not found' error

Please rebuild the docker images. To do that you may need to delete the container and all the related volumes.

If you meet other problems, please contact the team leader

Description

Compass is a medical wellness app that targets specifically people above 40 years old who might be interested in having some type of assistance to keep their healthy habits and lifestyles. Compass offers features of managing medical reminders, booking appointments, finding pill names, tracking user’s medications and treatments all in one consolidated application. In addition, having features of medical journals such as diabetic journals allows some patients to easily note their daily doses and treatment details making them able to follow the history of their treatments and use it as a reference for themselves or to show to their medical professional. Users can also send pictures of their unrecognized pills to get the five most possible pill names. Additionally, with the speed dial fast option to contact relatives during some emergency situations patients would be able to contact their relatives in a faster and easier way. With many features compass aims for users to be healthier and function hassle free.

Diversity

At Compass, we believe in embracing the diverse needs and experiences of every individual using our platform. We recognize that health and wellness are deeply personal journeys, influenced by a variety of factors including age, background, and individual health conditions. Our commitment to diversity is reflected in our user-centric design, ensuring that adults aged 40 and above from all walks of life feel empowered to manage their health with ease.

Whether you're tracking vital health metrics, managing medications, or seeking support for mental well-being, our app is here to support you every step of the way. We strive to provide an inclusive space where everyone feels valued and respected, regardless of their unique circumstances or challenges they may face.

From AI-driven features to identify symptoms and unknown pills, to providing real-time information on emergency room occupancy rates and nearby health facilities, we are dedicated to promoting accessibility and inclusivity in healthcare technology.

At Compass, diversity isn't just a statement—it's a fundamental part of our mission to improve health outcomes for all. Together, let's embrace our differences and work towards a healthier, more inclusive future.

Mockups

The following link directs to a read-only version of the application's UI mockups: Mockups on Figma

Contributors

Name Student ID GitHub
Christina Darstbanian 40097340 Chr728
Imran Ahmed 40172931 imran1289-ah
Jiayi Chen 40110997 JIAYI615
Divleen Kaur Ahluwalia 40116121 Divleen12
Jan Mikhail Alexei Ong 40154849 janong24
Julien Phan 40133814 MrMelon1232
Adir Ben-David 40190551 beezzyy
Jonathan Abitbol 40190550 yoniabitbol
Reuven Ostrofsky 40188881 Reuven1203

Tech Stack

Front End

  • NextJS
  • Tailwind CSS

Back End

  • NodeJS
  • Express
  • Firebase Authentication
  • PostgreSQL
  • FastAPI

DevOps and Testing

  • Docker
  • Jest
  • Supertest
  • PyTest

Machine Learning

  • Jupyter Notebook
  • HuggingFace
  • Tensorflow
  • Scikit learn
  • torch
  • datasets
  • Transformer

Core Features

  • Registration, Authentication and Security
  • View and Add Appointments
  • View and Add Medications
  • Personal Diabetes, Food intake, Activity, Weight, Oxygen, Blood pressure and Mood Journals
  • Push Notifications for Reminders
  • AI pill name prediction based on pill pictures
  • Speed dial to family, caregivers and emergency
  • Record the snoring audio, AI snoring pattern detection, and visualize the detected snoring patterns
  • AI diagnosis prediction based on symptoms
  • Check the capacity of Hospital Emergency Rooms in Quebec
  • Get health tips and news

License

The application is under the GNU Affero General Public v3.0 License. See LICENSE for more details

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 86.4%
  • TypeScript 8.8%
  • JavaScript 4.7%
  • Other 0.1%