Skip to main content

🚀 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)

Source distribution for fast-mu-builder 0.1.0.34
File Size Uploaded
fast_mu_builder-0.1.0.34.tar.gz 83.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fast-mu-builder 0.1.0.34
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page