🚀 Quick Start
Create FastAPI App for more visit https://fastapi.tiangolo.com/
⚙️ Installation
pip install fast-mu-builder
🚀 Setting Up a Custom User Model in FastAPI with Tortoise ORM + FastAPI-Builder
This guide explains how to create a package module for your User model, extend it from AbstractUser, configure it in Tortoise ORM, and generate GraphQL + migrations.
📂 Project Structure
myapp
├── mymodel_package
│ ├── __init__.py
│ └── models
│ └── ..
├── config
│ ├── __init__.py
│ └── tortoise.py
├── main.py
└── ...
🗄️ 3. Create Tortoise ORM Config
Inside config/tortoise.py:
from decouple import config
db_url = f"postgres://{config('DB_USER')}:{config('DB_PASSWORD')}@{config('DB_HOST')}:{config('DB_PORT')}/{config('DB_NAME')}"
TORTOISE_ORM = {
"connections": {"default": db_url},
"apps": {
"models": {
"models": [
"fast_mu_builder.models", # built-in models
"mymodel_package.models", # your custom models
"aerich.models", # migration tracking
],
"default_connection": "default",
},
},
"use_tz": True, # Enable timezone-aware datetimes
"timezone": "Africa/Dar_es_Salaam", # Set to EAT (Dar es Salaam)
}
🔧 4. Generate CRUD APIs via GraphQL
Run the following to scaffold GraphQL CRUD APIs:
# For your custom User model
graphql gen:crud-api user_management --module-package=mymodel_package.models --model User
# For fast_mu_builder built-in models
graphql gen:crud-api user_management --module-package=fast_mu_builder.models --model Group,Permission,Headship
graphql gen:crud-api workflow --module-package=fast_mu_builder.models --model Workflow,WorkflowStep,Transition,Evaluation
For your Models
#
graphql gen:crud-api <module-name> --model Model1,Model2,Model3
# generating graphql schemas with attachments
graphql gen:crud-api <module-name> --model ModelName --with-attachment
# generating graphql schemas with transition
graphql gen:crud-api <module-name> --model ModelName --with-transition
📦 5. Initialize Aerich (DB migrations)
# Initialize Aerich with your Tortoise ORM config
aerich init -t config.tortoise.TORTOISE_ORM
# Create initial migration & database tables
aerich init-db
📖 Documentation
Coming soon...
🤝 Contributing
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
📜 License
This project is licensed under the MIT License.
Thanks
Thanks for all the contributors that made this library possible, also a special mention to Japhary Juma, Shija Ntula and Juma Nassoro.
Metadata
Release files for fast-mu-builder 0.1.0.33
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fast_mu_builder-0.1.0.33.tar.gz | 83.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fast_mu_builder-0.1.0.33-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 189.4 kB
Release files / fast_mu_builder-0.1.0.33.tar.gz
| Download URL | fast_mu_builder-0.1.0.33.tar.gz |
|---|---|
| Size | 83.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c107eb013c082e494125c6d818a471744eafba7a31a4b02c7ed85713ce7ce95d
|
|
BLAKE2b-256 checksum How to use checksums |
e3ed4ba6e0ab93380244ad47ceb7e4557e865b2a2868b4e86fe8e96f587591c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / fast_mu_builder-0.1.0.33-py3-none-any.whl
| Download URL | fast_mu_builder-0.1.0.33-py3-none-any.whl |
|---|---|
| Size | 106.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f2d8881de38ad1a423f70183ac0a39a4a2b9cc087d94e804528e8aee747bca2a
|
|
BLAKE2b-256 checksum How to use checksums |
b27a3b738c4afbe23ae49ffa93f90ecbbbb6b3e9ee48c2ab6a7f45c3a16d3ea8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|