A production-ready fullstack application demonstrating modern CI/CD practices, with React frontend and FastAPI backend.
- TypeScript for type safety
- React with modern hooks and patterns
- Redux Toolkit for state management
- Comprehensive testing setup with Jest and Testing Library
- ESLint and Prettier for code quality
- Multi-stage Docker builds for optimal image size
- FastAPI for high-performance API development
- PostgreSQL with SQLAlchemy ORM
- Alembic for database migrations
- Comprehensive testing with pytest
- Type hints and Pydantic models
- OpenAPI documentation
- GitHub Actions for automated CI/CD
- Separate workflows for frontend and backend
- Automated testing on each PR
- Security scanning for dependencies
- Docker containerization
- Kubernetes deployment manifests
- Automated deployments to production
- Node.js 18+
- Python 3.11+
- Docker and Docker Compose
- Kubernetes cluster (for production deployment)
- PostgreSQL (for local development)
# Navigate to backend directory
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your configurations
# Run migrations
alembic upgrade head
# Start development server
uvicorn app.main:app --reload
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm start
cd backend
pytest -v --cov
cd frontend
npm test
# Build and run all services
docker-compose up --build
# Run specific service
docker-compose up backend
docker-compose up frontend
- Kubernetes cluster
- kubectl configured
- GitHub Container Registry access
# Apply Kubernetes configurations
kubectl apply -f kubernetes/
# Verify deployments
kubectl get deployments
kubectl get pods
kubectl get services
- CORS configuration
- Environment variables management
- Kubernetes secrets for sensitive data
- Resource limits and quotas
- Health checks and probes
- Regular security scanning
- Dependency updates
- Kubernetes liveness and readiness probes
- Health check endpoints
- Resource monitoring
- Application logs through Kubernetes
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
- Pull Requests are required for all changes
- CI must pass before merging
- Reviews required for all PRs
- Squash merge for clean history
- Delete branches after merging
MIT
βββ frontend/ # React frontend
β βββ src/ # Source code
β βββ tests/ # Test files
β βββ Dockerfile # Frontend container
βββ backend/ # FastAPI backend
β βββ app/ # Application code
β βββ tests/ # Test files
β βββ Dockerfile # Backend container
βββ kubernetes/ # K8s manifests
βββ .github/
βββ workflows/ # CI/CD pipelines
POSTGRES_SERVER
: Database hostPOSTGRES_USER
: Database userPOSTGRES_PASSWORD
: Database passwordPOSTGRES_DB
: Database name
REACT_APP_API_URL
: Backend API URL
For support, please open an issue in the repository.