Files
project-bootstrap/FEATURES.md
Bill 8dd4f0ca63 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
2025-10-15 21:34:08 -04:00

8.6 KiB

Features

Overview

This bootstrap creates a production-ready monorepo with modern tooling and best practices based on the coding-agent-rules.

Core Features

🏗️ Project Structure

  • Monorepo Layout - Clean separation of backend, frontend, deployment, and scripts
  • Modular Organization - Clear directory structure following industry standards
  • Scalable Architecture - Easy to extend and maintain

🐍 Backend (FastAPI)

  • Python 3.11+ - Modern Python with latest features
  • FastAPI Framework - High-performance async web framework
  • Pydantic v2 - Data validation and settings management
  • uv Package Manager - Fast, reliable dependency management
  • Type Safety - Full mypy type checking with strict mode
  • Code Quality
    • ruff for linting and formatting
    • 100% test coverage requirement
    • pytest with async support
  • API Documentation - Auto-generated OpenAPI/Swagger docs
  • Error Handling - Centralized error handling utilities
  • Configuration Management - Environment-based settings with Pydantic

⚛️ Frontend (React)

  • React 18 - Latest React with concurrent features
  • TypeScript - Full type safety with strict mode
  • Modern Tooling
    • ESLint for linting
    • Prettier for formatting
    • Jest for testing
    • React Testing Library
  • Code Quality - 90%+ test coverage requirement
  • API Integration - Axios with interceptors and centralized configuration
  • Component Structure - Organized by feature and common components
  • State Management - Ready for Redux/Context API
  • Responsive Design - Mobile-first approach

🐳 Docker & Deployment

  • Docker Compose - Complete local development environment
  • Multi-Service Setup
    • Backend container
    • Frontend container
    • PostgreSQL database
  • Hot Reload - Automatic reload on code changes
  • Volume Mounting - Live code updates without rebuilding
  • Environment Variables - Proper configuration management
  • Production Ready - Dockerfiles optimized for production builds

🔧 Development Scripts

Developer Scripts (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 (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 (scripts/ci/)

  • backend-test.sh - Complete backend CI pipeline
  • frontend-test.sh - Complete frontend CI pipeline

🚀 CI/CD

  • Gitea Actions - Ready-to-use CI workflows
  • Automated Testing - Run tests on every push/PR
  • Code Quality Checks - Linting and type checking in CI
  • Coverage Reports - Track test coverage over time
  • Path-Based Triggers - Only run relevant tests

📚 Documentation

API Documentation

  • OpenAPI/Swagger auto-generated docs
  • ReDoc alternative documentation
  • API changelog for tracking changes
  • Example requests and responses

Architecture Documentation

  • System architecture diagrams
  • Component interaction flows
  • Database schema documentation
  • Deployment architecture

User Guide

  • Getting started guide
  • Development workflow
  • Testing guide
  • Troubleshooting tips

🧪 Testing

Backend Testing

  • pytest - Modern Python testing framework
  • pytest-asyncio - Async test support
  • pytest-cov - Coverage reporting
  • Unit Tests - Test individual components
  • Integration Tests - Test API endpoints
  • 100% Coverage - Required for all backend code
  • Test Fixtures - Reusable test components

Frontend Testing

  • Jest - JavaScript testing framework
  • React Testing Library - Component testing
  • Coverage Thresholds - 90%+ required
  • Component Tests - Test UI components
  • Service Tests - Test API services
  • Integration Tests - Test user flows

🔒 Security

  • Environment Variables - Secrets not in code
  • CORS Configuration - Proper cross-origin setup
  • Input Validation - Pydantic schemas for validation
  • Type Safety - TypeScript and mypy prevent type errors
  • SQL Injection Prevention - ORM-based queries
  • Authentication Ready - Structure for auth implementation

📦 Package Management

Backend

  • uv - Fast, modern Python package manager
  • pyproject.toml - Standard Python project configuration
  • Lock File Support - Reproducible builds
  • Dev Dependencies - Separate dev and prod dependencies

Frontend

  • npm - Standard Node.js package manager
  • package.json - Project configuration
  • package-lock.json - Dependency locking
  • Dev Dependencies - Separate dev and prod dependencies

🎨 Code Quality

Backend

  • ruff - Fast Python linter and formatter
    • Replaces flake8, isort, black
    • Extremely fast (10-100x faster)
    • Auto-fix capabilities
  • mypy - Static type checker
    • Strict mode enabled
    • Catches type errors before runtime

Frontend

  • ESLint - JavaScript/TypeScript linter
    • React-specific rules
    • TypeScript support
    • Auto-fix capabilities
  • Prettier - Code formatter
    • Consistent code style
    • Integrates with ESLint

🔄 Development Workflow

  • Hot Reload - Instant feedback on code changes
  • Fast Startup - Quick development environment setup
  • Easy Testing - Simple commands to run tests
  • Code Formatting - One command to format everything
  • Git Integration - Pre-configured .gitignore
  • Documentation - Comprehensive guides and examples

📊 Monitoring & Logging

  • Structured Logging - JSON logs in production
  • Correlation IDs - Track requests across services
  • Health Checks - Monitor service health
  • Error Tracking - Centralized error handling

🎯 Best Practices

  • DRY Principle - Don't Repeat Yourself
  • SOLID Principles - Clean code architecture
  • Test-Driven Development - Write tests first
  • Continuous Integration - Automated testing
  • Code Reviews - Pull request workflows
  • Documentation - Keep docs up to date

What's Included

Configuration Files

  • pyproject.toml - Python project configuration
  • package.json - Node.js project configuration
  • tsconfig.json - TypeScript configuration
  • .eslintrc.json - ESLint configuration
  • .prettierrc.json - Prettier configuration
  • compose.yml - Docker Compose configuration
  • .gitignore - Git ignore rules
  • .env.example - Environment variable templates

Source Files

  • FastAPI application entry point
  • Core configuration module
  • Error handling utilities
  • React application component
  • API service client
  • Example tests (backend and frontend)
  • Test configuration

Docker Files

  • Backend Dockerfile
  • Frontend Dockerfile
  • Docker Compose with all services
  • PostgreSQL database setup

Scripts

  • 9 development and CI scripts
  • All scripts executable and tested
  • Error handling and validation

Documentation

  • Main README
  • Usage guide
  • Quick start guide
  • API documentation
  • Architecture documentation
  • User guide
  • API changelog

CI/CD

  • Backend CI workflow
  • Frontend CI workflow
  • Automated testing
  • Coverage reporting

What's NOT Included (By Design)

These are intentionally left for you to implement based on your needs:

  • Database migrations (Alembic)
  • Authentication/Authorization
  • Specific business logic
  • Production deployment configs
  • Monitoring/Observability tools
  • Message queues
  • Caching layer
  • CDN configuration

Extensibility

The bootstrap is designed to be extended with:

  • Database ORM - Add SQLAlchemy or similar
  • Authentication - Add JWT, OAuth, etc.
  • State Management - Add Redux, Zustand, etc.
  • UI Framework - Add Material-UI, Chakra, etc.
  • API Gateway - Add Kong, Traefik, etc.
  • Message Queue - Add RabbitMQ, Redis, etc.
  • Caching - Add Redis, Memcached, etc.
  • Search - Add Elasticsearch, etc.

Technology Versions

  • Python: 3.11+
  • Node.js: 20 LTS
  • React: 18.2+
  • FastAPI: 0.104+
  • TypeScript: 5.3+
  • PostgreSQL: 16+
  • Docker Compose: 3.8+

Compliance

Follows standards from:

  • coding-agent-rules
  • PEP 8 (Python style guide)
  • Airbnb JavaScript Style Guide
  • React best practices
  • Docker best practices
  • 12-Factor App methodology