Initial commit: Complete project-bootstrap tool
- 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
This commit is contained in:
242
INDEX.md
Normal file
242
INDEX.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# 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!
|
||||
Reference in New Issue
Block a user