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.33

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.33
File Size Uploaded
fast_mu_builder-0.1.0.33.tar.gz 83.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fast-mu-builder 0.1.0.33
File Interpreter ABI Platform
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
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