# Project Name A modern monorepo project with FastAPI backend and React frontend. ## Project Structure This project follows a modular monorepo layout based on best practices: - **backend/** - FastAPI server (Python 3.11+) - **frontend/** - React application (TypeScript) - **deploy/** - Docker and deployment configurations - **scripts/** - Shared scripts for CI and development - **docs/** - Project documentation ## Prerequisites - Python 3.11+ - Node.js 20 LTS - Docker & Docker Compose - uv (Python package manager) ## Quick Start ### Using Docker Compose (Recommended) ```bash # Start all services docker compose -f deploy/compose.yml up # Backend will be available at http://localhost:8000 # Frontend will be available at http://localhost:3000 # API docs at http://localhost:8000/docs ``` ### Local Development #### Backend ```bash cd backend cp .env.example .env uv sync uv run uvicorn app.main:app --reload ``` #### Frontend ```bash cd frontend cp .env.example .env npm install npm start ``` ## Development Scripts Located in `scripts/` directory: - **scripts/dev/** - Developer convenience scripts - `start-backend.sh` - Start backend server - `start-frontend.sh` - Start frontend dev server - `start-database.sh` - Start database container - `reset-database.sh` - Reset database - **scripts/utils/** - Utility scripts - `lint-backend.sh` - Lint backend code - `lint-frontend.sh` - Lint frontend code - `format-all.sh` - Format all code ## Testing ### Backend ```bash cd backend uv run pytest --cov=app --cov-report=term-missing ``` ### Frontend ```bash cd frontend npm test npm run test:coverage ``` ## Code Quality - **Backend**: ruff (format + lint), mypy (type checking), 100% test coverage required - **Frontend**: ESLint, Prettier, Jest, 90%+ test coverage ## CI/CD CI workflows are defined in `.gitea/workflows/` and use scripts from `scripts/ci/`. ## Documentation - API documentation: `/docs/api/` - Architecture diagrams: `/docs/architecture/` - User guide: `/docs/user-guide/` ## License [Specify your license here]