Skip to main content

A comprehensive FastAPI project generator

Project description

โšก StartFast

The Ultimate FastAPI Project Generator

Create scalable, production-ready FastAPI projects in seconds

PyPI version Python 3.8+ License: MIT


โœจ Features

๐Ÿš€ Project Types API โ€ข CRUD โ€ข ML-API โ€ข Microservice
๐Ÿ’พ Databases SQLite โ€ข PostgreSQL โ€ข MySQL โ€ข MongoDB โ€ข Redis
๐Ÿ” Authentication JWT โ€ข OAuth2 โ€ข API Key โ€ข None
๐Ÿณ DevOps Ready Docker โ€ข Docker Compose โ€ข Production configs
๐Ÿ“Š Observability Monitoring โ€ข Logging โ€ข Health checks
โšก Performance Async/Sync โ€ข Background tasks โ€ข Caching
๐Ÿงช Quality Testing suite โ€ข Code formatting โ€ข Documentation

๐Ÿ“ฆ Installation

๐ŸŽฏ Quick Install

pip install startfast

๐Ÿ› ๏ธ Development Install

git clone https://github.com/Incognitol07/startfast.git
cd startfast
pip install -e .

๐Ÿš€ Quick Start

โšก Generate Your First Project

startfast my-awesome-api

๐ŸŽจ Custom Configuration

startfast my-api --type crud --database postgresql --auth jwt --advanced

๐ŸŽฏ Usage

๐Ÿ“‹ Command Syntax

startfast PROJECT_NAME [OPTIONS]

โš™๏ธ Configuration Options

Option Description Values
--path Project directory Directory path
--type Project architecture api, crud, ml-api, microservice
--database Database backend sqlite, postgresql, mysql, mongodb, redis
--auth Authentication method none, jwt, oauth2, api-key
--sync Synchronous implementation Flag
--advanced Advanced features Flag
--no-docker Skip Docker setup Flag
--no-tests Skip test configuration Flag
--no-docs Skip documentation Flag
--monitoring Include observability Flag
--celery Background task support Flag
--python-version Python version Version string (default: 3.11)
--force Overwrite existing files Flag

๐ŸŒŸ Usage Examples

๐Ÿ”ง Simple API with SQLite
startfast simple-api
๐Ÿ—„๏ธ CRUD API with PostgreSQL and JWT
startfast crud-api --type crud --database postgresql --auth jwt
๐Ÿค– ML API with Advanced Features
startfast ml-service --type ml-api --advanced --monitoring
๐Ÿ—๏ธ Microservice with MongoDB and Celery
startfast micro-service --type microservice --database mongodb --celery

๐Ÿ—๏ธ Project Architecture

Generated projects follow a clean, scalable structure:

๐Ÿ“ my-project/
โ”œโ”€โ”€ ๐Ÿ“‚ app/
โ”‚   โ”œโ”€โ”€ ๐Ÿ __init__.py
โ”‚   โ”œโ”€โ”€ ๐Ÿš€ main.py                 # FastAPI app entry point
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ core/
โ”‚   โ”‚   โ”œโ”€โ”€ โš™๏ธ config.py          # Configuration management
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ” security.py        # Authentication & security
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ api/
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ v1/                # API version 1
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ models/                # Database models
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ schemas/               # Pydantic schemas
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ services/              # Business logic
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ utils/                 # Helper functions
โ”œโ”€โ”€ ๐Ÿ“‚ tests/                     # Test suite
โ”œโ”€โ”€ ๐Ÿ“‚ docs/                      # Documentation
โ”œโ”€โ”€ ๐Ÿ“„ requirements.txt           # Dependencies
โ”œโ”€โ”€ ๐Ÿณ Dockerfile                # Container configuration
โ”œโ”€โ”€ ๐Ÿ™ docker-compose.yml        # Multi-service setup
โ””โ”€โ”€ ๐Ÿ“– README.md                 # Project documentation

๐Ÿ› ๏ธ Development

๐Ÿšง Setup Development Environment

# Clone the repository
git clone https://github.com/Incognitol07/startfast.git
cd startfast

# Install in development mode
pip install -e ".[dev]"

# Setup pre-commit hooks
pre-commit install

๐Ÿงช Running Tests

pytest                    # Run all tests
pytest -v                 # Verbose output
pytest --cov              # With coverage report

๐ŸŽจ Code Quality

black .                   # Format code
isort .                   # Sort imports
flake8 .                  # Lint code
mypy .                    # Type checking

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

๐Ÿ”„ Contribution Workflow

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฟ Create your feature branch
    git checkout -b feature/amazing-feature
    
  3. ๐Ÿ’พ Commit your changes
    git commit -m 'Add some amazing feature'
    
  4. ๐Ÿ“ค Push to the branch
    git push origin feature/amazing-feature
    
  5. ๐Ÿ”€ Open a Pull Request

๐Ÿ“ Contribution Guidelines

  • Write clear, concise commit messages
  • Add tests for new features
  • Update documentation as needed
  • Follow the existing code style
  • Ensure all tests pass

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ—บ๏ธ Roadmap

๐Ÿ”ฎ Upcoming Features

  • ๐ŸŒ Web UI for project generation
  • ๐Ÿ“Š More database adapters (ClickHouse, TimescaleDB)
  • ๐ŸŽจ Custom template support
  • ๐Ÿ”Œ Plugin system for extensibility
  • ๐Ÿ’ป IDE integrations (VS Code, PyCharm)
  • โ˜๏ธ Cloud deployment templates
  • ๐Ÿ“ฑ Mobile-first API templates

๐Ÿ“ž Support & Community

๏ฟฝ Get Help & Connect

Email GitHub Issues GitHub Discussions

๐ŸŒŸ Show Your Support

If StartFast helped you build amazing projects, consider giving it a โญ!

Star on GitHub


Made with โค๏ธ by developers, for developers

Happy coding! ๐Ÿš€

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

startfast-0.1.0.tar.gz (45.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

startfast-0.1.0-py3-none-any.whl (51.2 kB view details)

Uploaded Python 3

File details

Details for the file startfast-0.1.0.tar.gz.

File metadata

  • Download URL: startfast-0.1.0.tar.gz
  • Upload date:
  • Size: 45.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for startfast-0.1.0.tar.gz
Algorithm Hash digest
SHA256 68199e16ccec377ff44cc51b79960c0932b7d7c636e6aff6c184432f525da199
MD5 0e1ae364975050ddd75eb15bc57c5dc0
BLAKE2b-256 20295cf9bdfce845e849804696e4c032994e2b3d88bd007ad24ab21389b62b09

See more details on using hashes here.

File details

Details for the file startfast-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: startfast-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 51.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for startfast-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da4efe807db0a196cc0e70be9d7a758ae95454c2b7c2dad6fe8d23920092f22a
MD5 1fa2c113e5dde75b80aa74c1a56d54b1
BLAKE2b-256 199a09a07fd4922833903c316ab3ff0664b831108389624bef6cb6edec533627

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page