Visit our website π

Or watch our website and mobile demos.
We are Computer Engineering students studying at BoΔaziΓ§i University.
We are taking the course CmpE 352: Introduction to Software Engineering together.
To learn more about the team and the project, visit our Wiki Page.

NutriHub is a comprehensive platform that helps users discover and manage affordable and healthy food options. The project consists of three main components:
- Frontend (React + TypeScript)
- Backend (Django)
- Mobile App (React Native)
- Docker and Docker Compose
- Node.js (v20 or later)
- Python (3.11 or later)
- MySQL (8.0)
The easiest way to run the entire project is using Docker Compose:
- Clone the repository:
git clone https://github.com/bounswe/bounswe2025group9.git
cd bounswe2025group9
- Start all services:
docker-compose up --build -d
This will start:
- Frontend at http://localhost
- Backend API at http://localhost/api
- MySQL database
To use the food data features, you need to set up FatSecret API credentials:
- Go to FatSecret Platform API
- Create a new account to get your API credentials
- Add the following environment variables to your environment variables in the backend directory:
FATSECRET_CONSUMER_KEY=your_consumer_key FATSECRET_CONSUMER_SECRET=your_consumer_secret
Note: The API credentials are required for:
- Food search functionality
- Nutritional information retrieval
- Food database integration
- Navigate to the backend directory:
cd backend
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements-dev.txt
- Set up environment variables:
source setup.sh # On Windows: .\setup.sh
- Run migrations:
python manage.py makemigrations
python manage.py migrate
- Start the development server:
python manage.py runserver 9000
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to the mobile directory:
cd mobile/nutrihub
- Install dependencies:
npm install
- Start the development server:
npm run dev
The project uses MySQL as the database. When running with Docker, the database is automatically configured. For manual setup:
- Create a MySQL database named
mydb
- Create a user with the following credentials:
- Username: django
- Password: djangopass
cd backend
python manage.py test
cd frontend
npm test
cd mobile/nutrihub
npm test
The project uses Black for Python code formatting:
cd backend
black .
Pre-commit hooks are set up for the backend:
cd backend
pre-commit install
bounswe2025group9/
βββ backend/ # Django backend
βββ frontend/ # React frontend
βββ mobile/ # React Native mobile app
βββ docker-compose.yml
- Create a new branch for your feature
- Make your changes
- Run tests
- Submit a pull request
This project is part of the CmpE 352 course at BoΔaziΓ§i University.