🚀 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.34
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.34.tar.gz | 83.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fast_mu_builder-0.1.0.34-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 189.5 kB
Release files / fast_mu_builder-0.1.0.34.tar.gz
| Download URL | fast_mu_builder-0.1.0.34.tar.gz |
|---|---|
| Size | 83.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e394ee8f9f8a07550ffd6e9c94da69fd9342842f18ce6a63b9855329d7081938
|
|
BLAKE2b-256 checksum How to use checksums |
3efaf37c0bdf891d7577dac0f5db86da11d32959345b54af3154480d6c590ed4
|
| 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.34-py3-none-any.whl
| Download URL | fast_mu_builder-0.1.0.34-py3-none-any.whl |
|---|---|
| Size | 106.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b9e568c7c59e576fa8e9c20dcb14d0adcbaea4eac08248778d98ac0e302b0fe9
|
|
BLAKE2b-256 checksum How to use checksums |
416d569804d81876e29c87e42ebde796d4d2eec07e6cd0ac107d0dc00f208bf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|