A mobile app that helps users track and visualize chronic migraine pain along with related health symptoms daily—without needing external medical records or hospital integration.
Table of Contents
This application is designed to support those suffering from chronic migraines by providing (list features here).
This project aims to improve the quality of life for individuals suffering from chronic migraines by providing a personalized, data-driven digital caregiver platform. The platform will help users track, analyze, and manage their migraine symptoms, empowering them to identify triggers, reduce frequency, and improve overall well-being.
Chronic migraines are a debilitating condition affecting over 1 billion people worldwide, with symptoms including severe headaches, nausea, and sensitivity to light and sound. Managing migraines often requires identifying and avoiding triggers, which can vary widely between individuals (e.g., stress, weather changes, diet, or sleep patterns). However, many people lack the tools and resources to effectively track and analyze their symptoms, leading to prolonged suffering and reduced quality of life.
Migraines are complex and multifactorial, often influenced by a combination of genetic, environmental, and lifestyle factors. Common triggers include:
- Environmental factors: Weather changes, bright lights, loud noises.
- Lifestyle factors: Stress, poor sleep, dehydration, irregular meals.
- Physiological factors: Hormonal changes, medication overuse.
While treatments such as medications, lifestyle changes, and therapy exist, managing migraines effectively often requires personalized approaches tailored to an individual’s unique triggers and symptoms. Unfortunately, many existing tools for migraine tracking are either too simplistic or lack the advanced analytics needed to provide actionable insights.
Our project aims to create a digital caregiver platform that goes beyond basic symptom tracking by leveraging data-driven insights and personalized recommendations to help users manage their migraines more effectively.
-
Daily Check-In:
- Simple rating scales to track migraine severity, duration, and location of pain.
- Optional notes to record additional details (e.g., potential triggers, medications taken).
-
Data Analysis and Insights:
- Advanced analytics to identify correlations between migraines and potential triggers (e.g., weather, sleep, stress, diet).
- Visualizations (e.g., charts, graphs) to help users understand patterns and trends in their symptoms.
-
Smart Predictions:
- Predictive modeling to estimate the user’s average daily migraine risk based on historical patterns.
- Personalized warnings for potential migraine days based on recent trends.
-
Trigger and Symptom Management:
- Customizable selection of common migraine triggers and symptoms during check-ins.
- Top 10 trigger reports based on frequency and correlation with migraines.
- Insight into which triggers most strongly contribute to migraines using SHAP interpretability.
-
Medication Tracking:
- Ability to log preventative and responsive medications during or after migraine episodes.
- Association of medications with individual migraine logs for better treatment tracking.
Our platform stands out by combining advanced analytics with user-centric design and community support. Unlike traditional migraine tracking apps, our solution provides personalized, actionable insights** while fostering a sense of connection and empowerment among users.
- Personalization: Tailored recommendations based on individual symptoms, triggers, and preferences.
- Advanced Analytics: Data-driven insights to help users identify patterns and correlations.
- Accessibility: A user-friendly platform that can be accessed anytime, anywhere, even offline.
-
Research and Development:
- Conduct user research to understand the specific needs and challenges of individuals with chronic migraines.
- Develop and test prototypes of the platform’s key features.
-
Implementation:
- Launch a pilot program to gather feedback and refine the platform.
- Scale the solution to reach users globally.
-
Evaluation:
- Monitor the platform’s impact on migraine frequency, severity, and overall well-being.
- Continuously improve the platform based on user feedback and emerging research.
Our app aims to empower individuals by providing accessible, personalized, and data-driven tools to manage their symptoms effectively. By addressing the root causes of migraines and fostering a supportive community, we hope to improve the quality of life for millions of people worldwide.
To get a local copy up and running follow these steps.
- Android Studio Virtual Device Manager (Windows)
- Xcode Simulator (MacOS)
- Python 3.10 or above
- PostgreSQL running and accessible
pipfor Python package management- A .env file configured in backend/.env with the following keys:
DATABASE_URL=postgresql://<username>:<password>@<host>:<port>/<dbname>
SECRET_KEY=your_secret_key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30- Clone the repo
git clone https://github.com/INFO-Capstone-PainPal/PainPal.git
- Install Expo CLI
npm install -g expo-cli
- Navigate to the frontend
cd frontend
- Install frontend dependencies
npm install
- If you are running on a real device, go through steps 5 and 6. Otherwise move to step 7.
Get your IP Address
Mac
ipconfig getifaddr en0
If on ethernet (or en0 does not work)
ipconfig getifaddr en1
Windows
ipconfig | findstr /i "IPv4 (Windows)
- Follow step 7 but for BASE_URL, paste in this:
BASE_URL=http://{youripaddress}:8000/
- Create file name
.envin the root of the frontend directory. Add the following:
OPENWEATHER_API_KEY=
GOOGLE_API_KEY=
# For iOS Sim
# BASE_URL=http://localhost:8000
# For Android Emulator
# BASE_URL=http://10.0.2.2:8000
- Start the development server
npx expo start --clear
- Launch your simulator
- Press
ato open the Android emulator (must be running Android Studio). - Press
ito open the iOS simulator (Mac only, must have Xcode installed). - Scan the QR code to open the Expo Go app on your mobile device
- Allow Location Services on your device or simulator. This is necessary for weather data.
- Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate # For Windows: .venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
-
Install and start Redis:
brew install redis brew services start redis
Follow the instructions on the redis website linked here
-
Apply database migrations (SEE BELOW FIRST)
alembic upgrade head
Note: If you're using the shared production or staging database, you do not need to run Alembic migrations. Migrations are only necessary if you're initializing a new local PostgreSQL instance or modifying the schema. If you haven’t initialized Alembic before, make sure your alembic.ini and env.py files are configured correctly.
Additionally run the seed_script.py file under db to populate the database with list of medications, triggers, and symptoms.
- From the root of the project, run the FastAPI backend server
uvicorn backend.main:app --reload --env-file backend/.env
Or if you had to go through steps 5 and 6 from setting up the frontend, run this command instead from the root of the project:
uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000 --env-file backend/.env
Joey Kang - LinkedIn - joeykang96@gmail.com
Diana Tran - LinkedIn
Cam Bun - LinkedIn
Kai Tinder - LinkedIn
Eric Kim - LinkedIn