Metadata-Version: 2.4
Name: fastapi-deck
Version: 0.2.0
Summary: Interactive TUI scaffold generator for production-ready FastAPI projects (like create-next-app)
Author: fastapi-deck contributors
License: MIT
Project-URL: Homepage, https://github.com/BazilSuhail/fastapi-deck
Project-URL: Repository, https://github.com/BazilSuhail/fastapi-deck
Project-URL: Bug Tracker, https://github.com/BazilSuhail/fastapi-deck/issues
Keywords: fastapi,scaffold,scaffolding,codegen,cli,tui,generator,uvicorn,sqlalchemy,alembic
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich>=13.0.0
Dynamic: license-file

# fastapi-deck

Interactive TUI scaffold generator for FastAPI projects — think **create-next-app**
but for FastAPI. Answer a few questions and get a complete, runnable project with
`.env`, `requirements.txt`, SQL database wiring, auth, optional services folder,
Docker and tests.

## Install

```bash
python -m pip install -e .
```

This registers `fastapi-deck` as a command on your system.

## Usage

```bash
fastapi-deck
```

The wizard asks:
- **Project name**
- **Template**: beginner (single file) / standard (layered) / production (domain-driven)
- **Database** (SQL only for now; MongoDB will be added later):
  - PostgreSQL — async SQLAlchemy + Alembic migrations
  - SQLite — async SQLAlchemy (easiest local dev)
  - None — bare REST skeleton
- **Optional features**, Next.js style:
  - JWT authentication (python-jose + passlib/bcrypt)
  - A `services/` business-logic folder
  - Docker (Dockerfile + docker-compose.yml)
  - pytest smoke tests

Then it generates the project under a directory named after your project.

## How it's built (modular architecture)

Everything is pluggable so new templates, databases and features drop in easily:

```
src/fastapi_deck/
├── cli.py              # interactive wizard (questions)
├── config.py           # ProjectConfig dataclass
├── builder.py          # merges core + layout + provider + features, writes files
├── prompts.py          # rich prompt helpers
├── layouts/            # beginner.py / standard.py / production.py / common.py
├── providers/          # base.py + postgres.py / sqlite.py / nonedb.py
│                       #   -> add MongoDB later by subclassing DBProvider
└── features/           # services.py / docker.py / tests.py (+ registry)
```

- **Layouts** decide folder structure and wiring.
- **Providers** own everything database-specific (requirements, `.env`, models,
  routers, migrations). Add `providers/mongodb.py` + one registry entry later.
- **Features** are optional, gated additions (Docker, tests, services folder).

## Development

```bash
python -m pip install -e .
fastapi-deck
```

## Build a distributable package

```bash
python -m pip install build
python -m build
```

The wheel/sdist land in `dist/`.
