fastapi_best_architecture

A RBAC (Role-Based Access Control) permission control system built on FastAPI, featuring a unique pseudo-three-tier architecture design, with built-in basic implementation of fastapi admin as a template library, free and open-source

677
113
Python
The logo includes the abstract combination of the three letters FBA, forming a lightning bolt that seems to spread out from the ground

FastAPI Best Architecture

English | 简体中文

A backend and frontend separation solution based on the FastAPI framework, following
the pseudo three-tier architecture design, supporting Python 3.10 and above
versions

🔥Continuously updated and maintained🔥

GitHub
Python
MySQL
PostgreSQL
SQLAlchemy
Pydantic v2
Ruff
uv
Docker
Discord
Discord

[!NOTE]
This repository as a template library open to any person or enterprise can be used for free!

Pseudo three-tier architecture

The mvc architecture is a common design pattern in python web, but the three-tier architecture is even more fascinating

In python web development, there is no common standard for the concept of three-tier architecture, so we’ll call it a
pseudo three-tier architecture here

But please note that we don’t have a traditional multi-app structure (django, springBoot…) If you don’t like this
pattern, use templates to transform it to your heart’s content!

workflow java fastapi_best_architecture
view controller api
data transmit dto schema
business logic service + impl service
data access dao / mapper crud
model model / entity model

Online Demo

You can view some of the preview screenshots
in fastapi_best_architecture_ui

For the demo entrance, please refer
to Official documentation

tester: test / 123456

super: admin / 123456

Features

  • [x] Design with FastAPI PEP 593 Annotated Parameters
  • [x] Global asynchronous design with async/await + asgiref
  • [x] Follows Restful API specification
  • [x] Global SQLAlchemy 2.0 syntax
  • [x] Pydantic v1 and v2 (different branches)
  • [x] Casbin RBAC access control model
  • [x] Role menu RBAC access control model
  • [x] Celery asynchronous tasks
  • [x] JWT middleware whitelist authentication
  • [x] Global customizable time zone time
  • [x] Docker / Docker-compose deployment
  • [x] Pytest Unit Testing

Built-in features

  • [x] User management: management of system user roles, assignment of permissions
  • [x] Departmental management: Configuration of the system organization (company, department, group, …)
  • [x] Menu management: Configuration of system menus, user menus, button permission labels
  • [x] Role management: assignment of role menu privileges, assignment of role routing privileges
  • [x] Dictionary management: maintenance of commonly used fixed data or parameters within the system
  • [x] Code generation: back-end code is automatically generated, supporting preview, write and download.
  • [x] Operation log: logging and querying of normal and abnormal system operations.
  • [x] Login authentication: graphical captcha backend authentication login
  • [x] Logging: logging and querying of normal and abnormal user logins
  • [x] Service monitoring: server hardware device information and status
  • [x] Timed tasks: automated tasks, asynchronous tasks, support for function calls
  • [x] Interface Documentation: Automatically generate online interactive API interface documentation.

Development and deployment

For more details, please check
the official documentation

Contributors

Special thanks

Interactivity

TG / Discord

Sponsor us

If this program has helped you, you can sponsor us with some coffee
beans: ☕ Sponsor ☕

License

This project is licensed by the terms of
the MIT license

Stargazers over time