aitutor/
βββ π README.md # Main project documentation
βββ π .gitignore # Git ignore rules
βββ π .github/ # GitHub workflows
β βββ workflows/
β βββ ci.yml # CI/CD pipeline
β βββ docker.yml # Docker build and push
βββ π src/ # Source code
β βββ π backend/ # FastAPI backend application
β β βββ app/
β β β βββ core/
β β β βββ models/
β β β βββ services/
β β β βββ api/
β β βββ venv/ # Python virtual environment
β β βββ requirements.txt # Python dependencies
β β βββ Dockerfile # Backend Docker configuration
β β βββ .env.example # Environment variables template
β βββ π frontend/ # Next.js frontend application
β βββ app/
β β βββ components/
β β βββ hooks/
β β βββ lib/
β β βββ types/
β βββ public/
β βββ Dockerfile # Frontend Docker configuration
β βββ package.json # Node.js dependencies
β βββ .env.example # Environment variables template
βββ π scripts/ # Utility scripts
β βββ setup.sh # Initial setup script
β βββ start.sh # Development startup script
β βββ package.json # Node.js package management
β βββ package-lock.json # Locked dependencies
βββ π deployment/ # Deployment configurations
β βββ docker-compose.yml # Development Docker setup
βββ π config/ # Configuration files
β βββ docker-compose.prod.yml # Production Docker setup
βββ π docs/ # Documentation
β βββ README.md # Main README (copied to root)
β βββ SYSTEM_STATUS.md # System status guide
β βββ TROUBLESHOOTING.md # Troubleshooting guide
β βββ SWIPE_CARDS_GUIDE.md # UI component guide
β βββ [other docs...] # Additional documentation
βββ π hackathon/ # Hackathon-specific files
β βββ README.md # Hackathon project description
βββ π assets/ # Static assets
β βββ README.md # Assets documentation
βββ π node_modules/ # Node.js dependencies (auto-generated)
# Clone the repository
git clone <repository-url>
cd aitutor
# Run setup script
chmod +x scripts/setup.sh
./scripts/setup.sh# Add your OpenRouter API key
echo "OPENROUTER_API_KEY=your_key_here" >> src/backend/.env# Start both frontend and backend
./scripts/start.sh- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Port: 8000
- Framework: FastAPI with Python 3.12
- Main Components:
app/core/config.py- Configuration managementapp/models/schemas.py- Data modelsapp/services/api_service.py- External API integrationapp/api/routes/tutor.py- API endpoints
- Port: 3000
- Framework: Next.js 14 with TypeScript
- Main Components:
app/components/- React componentsapp/hooks/- Custom React hooksapp/lib/- Utility functionsapp/types/- TypeScript definitions
- Backend:
uvicorn app.main:app --reload --port 8000 - Frontend:
npm run dev - Both:
./scripts/start.sh
# Using Docker
docker-compose -f config/docker-compose.prod.yml up -d- GitHub Actions: Automated testing and deployment
- Docker: Containerized deployment
- Health Checks: Automated monitoring
| File | Purpose |
|---|---|
scripts/setup.sh |
Initial project setup |
scripts/start.sh |
Development server startup |
src/backend/.env.example |
Backend environment template |
src/frontend/.env.example |
Frontend environment template |
deployment/docker-compose.yml |
Development Docker setup |
config/docker-compose.prod.yml |
Production Docker setup |
- Environment Setup: Run the setup script
- API Configuration: Add your OpenRouter API key
- Development: Use start script for local development
- Deployment: Use Docker for production deployment
This structure follows GitHub and hackathon best practices for web applications.