
Fastapi-app is an opinionated modular FastAPI app boilerplate inspired by NestJS and Flask's Blueprint.
Fastapi-app is a versatile and modular boilerplate designed for building FastAPI applications. Drawing inspiration from frameworks like NestJS and Flask's Blueprint, it caters to developers looking to create small to medium-sized API-oriented microservices with ease. With its well-thought-out architecture, Fastapi-app streamlines the development process, allowing you to focus on creating robust and scalable applications.
Whether you are efficiently managing database operations, implementing authentication, or scheduling background jobs, Fastapi-app provides a solid foundation. Its opinionated structure helps maintain consistency across your projects, making it an excellent choice for developers seeking a reliable starting point.
ASGI Server with Uvicorn: Fastapi-app leverages Uvicorn as the ASGI server to ensure high-performance and asynchronous capabilities for your applications.
Active Record ORM with Tortoise: This feature simplifies database interactions, allowing developers to work with Python objects while managing data effortlessly.
Database Migration with Aerich: Aerich provides a smooth migration process, making it easy to manage changes in your database schema over time.
Authentication with OAuth2: Built-in support for OAuth2 ensures secure authentication, allowing users to authenticate easily while protecting sensitive data.
Access Control with Casbin: Casbin integration helps enforce fine-grained access control, making it easier to manage user permissions and roles.
Job Scheduling with Arq: Schedule and handle background jobs seamlessly using Arq, facilitating the execution of asynchronous tasks at specified intervals.
CLI with Typer: Fastapi-app includes a command-line interface built with Typer, allowing developers to run scripts and manage applications with ease.
Built-in Pagination Support: The built-in pagination feature simplifies managing large datasets, providing a straightforward way to retrieve and display data in manageable chunks.
