Skip to main content

FastAPI project scaffolder — zero dependencies, one command.

Project description

fullapi

A FastAPI project scaffolder that generates complete project structures with one command. Built with pure Python stdlib - no external dependencies.

Installation

Install from PyPI:

pip install fullapi

Or install from source:

git clone https://github.com/sahilnyk/fullapi.git
cd fullapi
pip install -e .

Quick Start

Create a new project interactively:

fullapi new my_project

This starts an interactive prompt where you select:

  • Mode (basic or full)
  • Database (none, sqlite, postgresql, mysql)
  • Authentication (none or JWT)
  • Docker support

Commands

Command Description
fullapi new <name> Create new project with prompts
fullapi new <name> --basic Basic mode, skip prompts
fullapi new <name> --full Full mode, skip prompts
fullapi new <name> --full --db postgresql --auth --docker All features
fullapi --version Show version
fullapi --help Show help

CLI Flags

Flag Values Description
--basic - Minimal project structure
--full - Complete production structure
--db none, sqlite, postgresql, mysql Database choice
--auth - Add JWT authentication
--docker - Add Docker files

What Gets Created

Basic Mode

A minimal starting point for small APIs:

my_project/
├── main.py
├── routers/
│   └── health.py
├── schemas/
│   └── base.py
├── core/
│   └── config.py
└── requirements.txt

Full Mode

Production-ready structure with all components:

my_project/
├── main.py
├── routers/
│   ├── __init__.py
│   ├── health.py
│   └── users.py
├── models/
│   ├── __init__.py
│   └── user.py
├── schemas/
│   ├── __init__.py
│   ├── base.py
│   └── user.py
├── crud/
│   ├── __init__.py
│   └── user.py
├── core/
│   ├── __init__.py
│   ├── config.py
│   └── security.py      (if --auth)
├── db/
│   ├── __init__.py
│   └── session.py       (if --db)
├── tests/
│   └── test_main.py
├── deps.py
├── .env.example
├── requirements.txt
├── Dockerfile           (if --docker)
└── docker-compose.yml   (if --docker)

Features

  • Interactive prompts for configuration
  • CLI flags for automation
  • Database support: SQLite, PostgreSQL, MySQL
  • JWT authentication with OAuth2
  • Docker and docker-compose setup
  • Progress bar during scaffolding
  • Overwrite protection for existing directories
  • Zero external dependencies

Examples

Basic API:

fullapi new my_api --basic

Full API with PostgreSQL:

fullapi new my_api --full --db postgresql

Complete setup with everything:

fullapi new my_api --full --db postgresql --auth --docker

Running Your Project

After scaffolding:

cd my_project
pip install -r requirements.txt
uvicorn main:app --reload

Visit http://localhost:8000/docs for the auto-generated API documentation.

Architecture

fullapi is built entirely with Python standard library:

  • argparse for CLI parsing
  • pathlib for file operations
  • string.Template for code generation
  • ANSI escape codes for terminal output

The tool uses a simple dataclass (ProjectConfig) to drive all decisions. No complex logic or external templating engines.

Contributing

Contributions are welcome. Guidelines:

  1. Keep it stdlib only - no new dependencies
  2. Write clean, readable code
  3. Test your changes before submitting
  4. One feature per PR

To contribute:

# Fork and clone
git clone https://github.com/sahilnyk/fullapi.git
cd fullapi

# Make changes
# ...

# Test
pip install -e .
fullapi new test_project --full

# Submit PR

Roadmap

  • Basic scaffolding (done)
  • Full scaffolding with models/CRUD (done)
  • Database support (done)
  • JWT authentication (done)
  • Docker support (done)
  • Progress bar (done)
  • Add router/model to existing projects (planned)
  • Alembic migrations (planned)
  • Redis support (planned)
  • Custom templates (planned)

License

MIT License - see LICENSE file for details.

Author

Sahil Nayak - https://github.com/sahilnyk

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

fullapi-1.0.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

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

fullapi-1.0.0-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file fullapi-1.0.0.tar.gz.

File metadata

  • Download URL: fullapi-1.0.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for fullapi-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1307acdf866018e517bddcc19511459ee44ce1d06f09ba202f7f4c5a72c80a32
MD5 494b8d2b41ff325500d9cc443538f438
BLAKE2b-256 2be8b49b94e387ca15fe54586d9751c9abb8c07dcf795d99d7ab827031953f96

See more details on using hashes here.

File details

Details for the file fullapi-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: fullapi-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for fullapi-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af43f4af288ff19dceceaa1ec942da79fa85fe46fd545835dbe966b5f00862cc
MD5 2be591c57320302c90c198be318d5c15
BLAKE2b-256 119497ae4b6a45c79fcd7f50f5aa6ac150de08af70a4f8e973eb530dcdbfb070

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