📍 You are here: Documentation Index → Setup Guide
➡️ Next: Git Workflow
- Docker and Docker Compose
- Make (optional, for convenience)
- Git
No local Node.js or Python installations required - everything runs in containers!
-
Clone the repository
git clone <repository-url> cd COMP30022
-
Set up environment variables
# Copy environment files cp .env.example .env cp frontend/.env.local.example frontend/.env.local cp backend/.env.example backend/.env cp ai-service/.env.example ai-service/.env # Edit the files with your actual values
-
Start all services with Docker
# Development mode (with hot reload) make dev-up # or manually: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- AI Service: http://localhost:8000
- MongoDB: localhost:27017
All commands run inside containers (requires containers to be running first):
# Run all tests
make test
# Format all code
make format
# Lint all code
make lint
# Or run individual commands
docker-compose exec backend pytest
docker-compose exec ai-service pytest
docker-compose exec frontend npm testMongoDB will be automatically initialized with:
- Basic form templates
- Required indexes
# View logs for specific service
docker-compose logs -f frontend
docker-compose logs -f backend
docker-compose logs -f ai-service
# Stop all services
make dev-down
# or manually:
docker-compose down
# Remove all data (reset database)
docker-compose down -v
# Clean up build artifacts
make cleanIf ports are already in use, modify the port mappings in docker-compose.yml.
Ensure MongoDB is running and the connection string is correct in your .env files.
Check that you have valid API keys or local models configured in ai-service/.env.
- Start containers:
make dev-up - Create feature branch from main
- Make changes
- Test:
make test - Format:
make format - Ensure all checks pass
- Create pull request
- Farah (Frontend): Next.js application, UI components, user experience
- Himank (Backend): Flask API, database models, integrations
- Yusuf (AI): RAG implementation, AI service, embeddings
- Bryan (Scrum Master): Project coordination, documentation
- Adam (Product Owner): Requirements, stakeholder communication
✅ Environment Ready? → Next: Git Workflow