Metadata-Version: 2.4
Name: fastapi-quiver
Version: 0.1.0
Summary: A complete admin panel and user portal for any FastAPI + SQLModel application, declared in Python.
Author-email: rnkr69 <rnkr69@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/rnkr69/quiver
Project-URL: Repository, https://github.com/rnkr69/quiver
Project-URL: Documentation, https://github.com/rnkr69/quiver/tree/main/docs
Project-URL: Issues, https://github.com/rnkr69/quiver/issues
Project-URL: Changelog, https://github.com/rnkr69/quiver/blob/main/CHANGELOG.md
Keywords: fastapi,sqlmodel,admin,admin-panel,dashboard,rbac,crud,backend
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.111.0
Requires-Dist: sqlmodel>=0.0.18
Requires-Dist: alembic>=1.13.0
Requires-Dist: python-jose[cryptography]>=3.3.0
Requires-Dist: bcrypt>=4.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: click>=8.1.0
Requires-Dist: email-validator>=2.0.0
Provides-Extra: serve
Requires-Dist: uvicorn[standard]>=0.29.0; extra == "serve"
Provides-Extra: dev
Requires-Dist: uvicorn[standard]>=0.29.0; extra == "dev"
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: httpx>=0.27.0; extra == "dev"
Requires-Dist: ruff>=0.6.0; extra == "dev"
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Dynamic: license-file

# Quiver

[![CI](https://github.com/rnkr69/quiver/actions/workflows/ci.yml/badge.svg)](https://github.com/rnkr69/quiver/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/fastapi-quiver.svg)](https://pypi.org/project/fastapi-quiver/)
[![Python](https://img.shields.io/pypi/pyversions/fastapi-quiver.svg)](https://pypi.org/project/fastapi-quiver/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/rnkr69/quiver/blob/main/LICENSE)

**A complete admin panel and user portal for any FastAPI + SQLModel app — declared in Python.**

Quiver is a library, not a standalone app. Mount it on your existing FastAPI application in one
line, declare your CRUDs, widgets, pages and permissions in Python, and get a full admin panel
(list/create/edit/delete UI, dashboard, RBAC) plus a client portal — without writing any
frontend code. The generic React SPA reads everything (columns, fields, filters, menu, pages)
from the backend at runtime.

> The PyPI package is named **`fastapi-quiver`**; the import name is **`quiver`**.

## Install

```bash
pip install fastapi-quiver
```

## Use

```python
# main.py
from fastapi import FastAPI
from quiver import QuiverApp
import permissions  # noqa: F401 — register permissions at import time

app = FastAPI()
quiver = QuiverApp(app)  # mounts auth, RBAC, users, dashboard, menu, pages and portal
```

`SECRET_KEY` and `DATABASE_URL` are required. Then:

```bash
quiver db migrate          # apply Quiver's auth/RBAC migrations
quiver create-superuser    # interactive first-user creation
uvicorn main:app --reload  # API served under /quiver/v1
```

The package ships the API only; the admin/portal SPA lives in the
[`frontend/`](https://github.com/rnkr69/quiver/tree/main/frontend) directory of the repo and is
served separately.

## Documentation

Full documentation, the reference example app and the frontend live in the repository:
**https://github.com/rnkr69/quiver**

## License

[MIT](https://github.com/rnkr69/quiver/blob/main/LICENSE) © rnkr69
