Many people struggle to track their moods consistently, which prevents them from recognizing emotional patterns and improving mental well-being. VibeCheck simplifies this process with an intuitive emoji-based system, AI-driven insights, and web scraped articles with self-care suggestions.
Screen.Recording.2025-05-09.at.7.03.03.PM.mov
- User authentication (login and registration).
- Mood logging with AI-driven sentiment analysis.
- Interactive chart to visualize mood trends over time.
- Articles section with curated content for mental health.
- User authentication (email/password)
- Client-side validation
- Error handling and logging
- Frontend:
- React
- DaisyUI (Tailwind CSS)
- Chart.js for data visualization
- Backend:
- Flask
- PostgreSQL
- OpenAI API (for sentiment analysis)
- Other Tools:
- Vite (for development and build)
- BeautifulSoup (for web scraping)
- dotenv (for environment variable management)
Prerequisite: Python 3.13.1
- Clone the repository
git clone https://github.com/stmcpeters/VibeCheck.git
cd vibecheck - Set up the Flask backend
- Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate# On Windows: venv\Scripts\activate - Navigate to the server
cd server - Install dependencies
pip install -r requirements.txt - Register for an API key from OpenAI
- Add environment variables for application
Copy the.env.examplefile and rename it to.env
Fill in the required values in the.envfile - Set up the database:
Connect to your PostgreSQL database:
psql -U <your_username> -d <your_database>
Run thedb.sqlfile to create the schema:
\i path/to/db.sql - Run the Flask server
python3 app.py
- Create and activate a virtual environment
- Set up the React Frontend
cd client
npm install
npm run dev
This project uses pytest for testing.
-
Run all tests:
pytest -
View the test results in the terminal.
Optional:
-
To check test coverage, install
pytest-cov:
pip install pytest-cov -
Run tests with coverage:
pytest --cov=vibecheck
Contributions are welcomed to this project! If you have an idea for a new feature or a bug fix, please open an issue or a pull request.