- 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
243 lines
6.5 KiB
Markdown
243 lines
6.5 KiB
Markdown
# Project Bootstrap - Complete Index
|
|
|
|
## Documentation Files
|
|
|
|
### Getting Started
|
|
- **[README.md](README.md)** - Main project overview and introduction
|
|
- **[QUICKSTART.md](QUICKSTART.md)** - Quick 3-step guide to get started
|
|
- **[USAGE.md](USAGE.md)** - Detailed usage instructions and examples
|
|
|
|
### Reference
|
|
- **[FEATURES.md](FEATURES.md)** - Complete list of all features
|
|
- **[PROJECT_SUMMARY.md](PROJECT_SUMMARY.md)** - Executive summary and statistics
|
|
- **[CHANGELOG.md](CHANGELOG.md)** - Version history and changes
|
|
|
|
### Development
|
|
- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Guidelines for contributors
|
|
- **[INDEX.md](INDEX.md)** - This file - complete project index
|
|
|
|
## Executable Files
|
|
|
|
### Main Script
|
|
- **[bootstrap.sh](bootstrap.sh)** - Main bootstrap script to create new projects
|
|
|
|
### Verification
|
|
- **[verify.sh](verify.sh)** - Automated verification script to test bootstrap
|
|
|
|
## Template Files
|
|
|
|
All template files are located in the `templates/` directory and will be copied to generated projects.
|
|
|
|
### Root Templates
|
|
- **templates/README.md** - Project README template
|
|
- **templates/LICENSE** - MIT License template
|
|
- **templates/.gitignore** - Git ignore rules
|
|
|
|
### Backend Templates (`templates/backend/`)
|
|
- **pyproject.toml** - Python project configuration with uv
|
|
- **.env.example** - Environment variables example
|
|
- **app/main.py** - FastAPI application entry point
|
|
- **app/core/config.py** - Configuration management
|
|
- **app/core/errors.py** - Error handling utilities
|
|
- **tests/conftest.py** - Test fixtures
|
|
- **tests/unit/test_core/test_config.py** - Example unit test
|
|
- **tests/integration/test_api/test_health.py** - Example integration test
|
|
|
|
### Frontend Templates (`templates/frontend/`)
|
|
- **package.json** - Node.js dependencies and scripts
|
|
- **tsconfig.json** - TypeScript configuration
|
|
- **.eslintrc.json** - ESLint configuration
|
|
- **.prettierrc.json** - Prettier configuration
|
|
- **.env.example** - Environment variables example
|
|
- **public/index.html** - HTML template
|
|
- **src/index.tsx** - React entry point
|
|
- **src/App.tsx** - Main React component
|
|
- **src/App.test.tsx** - Example component test
|
|
- **src/setupTests.ts** - Test setup
|
|
- **src/services/api.ts** - API client configuration
|
|
- **src/styles/index.css** - Global styles
|
|
- **src/styles/App.css** - App styles
|
|
|
|
### Deployment Templates (`templates/deploy/`)
|
|
- **compose.yml** - Docker Compose configuration
|
|
- **.env.example** - Deployment environment variables
|
|
- **README.md** - Deployment documentation
|
|
- **docker/backend.Dockerfile** - Backend container image
|
|
- **docker/frontend.Dockerfile** - Frontend container image
|
|
- **docker/README.md** - Docker documentation
|
|
|
|
### Script Templates (`templates/scripts/`)
|
|
|
|
#### Development Scripts (`templates/scripts/dev/`)
|
|
- **start-backend.sh** - Start FastAPI development server
|
|
- **start-frontend.sh** - Start React development server
|
|
- **start-database.sh** - Start PostgreSQL container
|
|
- **reset-database.sh** - Reset database with confirmation
|
|
|
|
#### Utility Scripts (`templates/scripts/utils/`)
|
|
- **lint-backend.sh** - Run backend linting and type checking
|
|
- **lint-frontend.sh** - Run frontend linting
|
|
- **format-all.sh** - Format all code (backend + frontend)
|
|
|
|
#### CI Scripts (`templates/scripts/ci/`)
|
|
- **backend-test.sh** - Complete backend CI pipeline
|
|
- **frontend-test.sh** - Complete frontend CI pipeline
|
|
|
|
### Documentation Templates (`templates/docs/`)
|
|
|
|
#### API Documentation (`templates/docs/api/`)
|
|
- **README.md** - API documentation overview
|
|
- **CHANGELOG.md** - API changelog template
|
|
|
|
#### Architecture Documentation (`templates/docs/architecture/`)
|
|
- **README.md** - Architecture documentation with diagrams
|
|
|
|
#### User Guide (`templates/docs/user-guide/`)
|
|
- **README.md** - User guide and tutorials
|
|
|
|
### CI/CD Templates (`templates/.gitea/`)
|
|
- **workflows/backend-ci.yml** - Backend CI workflow
|
|
- **workflows/frontend-ci.yml** - Frontend CI workflow
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
project-bootstrap/
|
|
├── Documentation (8 files)
|
|
│ ├── README.md
|
|
│ ├── QUICKSTART.md
|
|
│ ├── USAGE.md
|
|
│ ├── FEATURES.md
|
|
│ ├── PROJECT_SUMMARY.md
|
|
│ ├── CHANGELOG.md
|
|
│ ├── CONTRIBUTING.md
|
|
│ └── INDEX.md
|
|
├── Scripts (2 files)
|
|
│ ├── bootstrap.sh
|
|
│ └── verify.sh
|
|
├── Configuration (1 file)
|
|
│ └── .gitignore
|
|
└── Templates (53 files)
|
|
├── Root (3 files)
|
|
├── Backend (8 files)
|
|
├── Frontend (13 files)
|
|
├── Deploy (6 files)
|
|
├── Scripts (9 files)
|
|
├── Docs (10 files)
|
|
└── CI/CD (2 files)
|
|
```
|
|
|
|
## Quick Reference
|
|
|
|
### Create a New Project
|
|
```bash
|
|
./bootstrap.sh my-project
|
|
```
|
|
|
|
### Verify Bootstrap Works
|
|
```bash
|
|
./verify.sh
|
|
```
|
|
|
|
### Start Generated Project
|
|
```bash
|
|
cd my-project
|
|
docker compose -f deploy/compose.yml up
|
|
```
|
|
|
|
### Run Tests
|
|
```bash
|
|
# Backend
|
|
cd backend && uv run pytest --cov=app
|
|
|
|
# Frontend
|
|
cd frontend && npm test
|
|
```
|
|
|
|
### Format Code
|
|
```bash
|
|
bash scripts/utils/format-all.sh
|
|
```
|
|
|
|
## File Counts
|
|
|
|
- **Documentation**: 8 files
|
|
- **Scripts**: 2 files
|
|
- **Templates**: 53 files
|
|
- **Total**: 63 files
|
|
|
|
## Generated Project Statistics
|
|
|
|
When you run the bootstrap, it creates:
|
|
- **62+ files** in the new project
|
|
- **35+ directories**
|
|
- **9 executable scripts**
|
|
- **Complete working application**
|
|
|
|
## Technology Stack
|
|
|
|
### Backend
|
|
- Python 3.11+
|
|
- FastAPI
|
|
- Pydantic v2
|
|
- uv
|
|
- ruff
|
|
- mypy
|
|
- pytest
|
|
|
|
### Frontend
|
|
- React 18
|
|
- TypeScript
|
|
- Axios
|
|
- ESLint
|
|
- Prettier
|
|
- Jest
|
|
|
|
### DevOps
|
|
- Docker
|
|
- Docker Compose
|
|
- PostgreSQL 16
|
|
- Gitea Actions
|
|
|
|
## Key Features Summary
|
|
|
|
✅ One-command project creation
|
|
✅ Full-stack monorepo structure
|
|
✅ Docker Compose setup
|
|
✅ 100% backend test coverage requirement
|
|
✅ 90%+ frontend test coverage
|
|
✅ Type safety (mypy + TypeScript)
|
|
✅ Automated linting and formatting
|
|
✅ CI/CD workflows included
|
|
✅ Comprehensive documentation
|
|
✅ Development scripts
|
|
✅ Example code and tests
|
|
|
|
## Links
|
|
|
|
- **Coding Rules**: https://git.prettyhefty.com/Bill/coding-agent-rules
|
|
- **FastAPI**: https://fastapi.tiangolo.com/
|
|
- **React**: https://react.dev/
|
|
- **uv**: https://github.com/astral-sh/uv
|
|
|
|
## Version
|
|
|
|
- **Current Version**: 1.0.0
|
|
- **Release Date**: 2024-10-15
|
|
- **License**: MIT
|
|
|
|
## Support
|
|
|
|
For help:
|
|
1. Read [QUICKSTART.md](QUICKSTART.md) for quick start
|
|
2. Read [USAGE.md](USAGE.md) for detailed guide
|
|
3. Check [FEATURES.md](FEATURES.md) for feature list
|
|
4. Review [CONTRIBUTING.md](CONTRIBUTING.md) for development
|
|
|
|
## Next Steps
|
|
|
|
1. Run `./bootstrap.sh my-project` to create a project
|
|
2. Follow the generated README.md in your project
|
|
3. Start building your application
|
|
4. Enjoy the modern development experience!
|