- Bootstrap script for creating monorepo projects - FastAPI backend templates with uv, ruff, mypy, pytest - React frontend templates with TypeScript, ESLint, Prettier - Docker Compose setup with backend, frontend, and database - 9 development and CI scripts - Gitea Actions CI/CD workflows - Comprehensive documentation (8 files) - 45 template files for complete project structure - Automated verification script (all tests pass) - Based on coding-agent-rules standards
105 lines
2.0 KiB
Markdown
105 lines
2.0 KiB
Markdown
# 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]
|