Home

Awesome

Create FastAPI Project

We love ❤️ FastAPI and its ecosystem so we decided to make easier to get started with FastAPI projects. By using the create-fastapi-project CLI tool, you can quickly start building a new FastAPI application with a basic folder structure, with everything set up for you.

To get started, use the following command:

pip install create-fastapi-project
create-fastapi-project

After you that you are going to see an interactive screen like this:

create-app-terminal

Templates

Basic

<details> <summary>See More</summary>

We're excited to introduce you to our FastAPI Basic Project Template, carefully designed to jumpstart your FastAPI development journey. This template offers you a pre-configured project with a fundamental FastAPI setup and an organized folder structure, allowing you to hit the ground running.

Folder Structure

└───app
  ├───app
  │   ├───api
  │   │   └───v1
  │   │       └───endpoints
  │   ├───core
  │   ├───schemas
  │   └───utils
  │       └───exceptions
  └───test
</details>

Langchain Basic

<details> <summary>See More</summary>

We're thrilled to introduce you to the LangChain project template, designed to accelerate your development process. This template serves as a solid foundation for your project, complete with essential features and an organized folder structure, all thoughtfully configured and ready for use.

Folder Structure

app
    ├───app
    │   ├───api
    │   │   └───v1
    │   │       └───endpoints
    │   ├───core
    │   ├───schemas
    │   ├───templates
    │   │   └───general_pages
    │   └───utils
    │       ├───adaptive_cards
    │       └───exceptions
    └───test

Containers Architecture

langchain-architecture As this project uses Caddy as a reverse proxy, which uses namespaces routing, you can access the documentation with the following path http://fastapi.localhost/docs

ENV Variables

PROJECT_NAME=
OPENAI_API_KEY=
UNSPLASH_API_KEY= # Optional
SERP_API_KEY= # Optional

#############################################
# Caddy variables
#############################################
EXT_ENDPOINT1=127.0.0.1
LOCAL_1=localhost
LOCAL_2=127.0.0.1

Tools

</details>

Full

<details> <summary>See More</summary>

This is a project template which uses FastAPI, Alembic and async SQLModel as ORM. It shows a complete async CRUD template using authentication. Our implementation utilizes the newest version of FastAPI and incorporates typing hints that are fully compatible with Python 3.10 and later versions. If you're looking to build modern and efficient web applications with Python, this template will provide you with the necessary tools to get started quickly. You can read a short article with the motivations for starting this sample project here.

Why Use This Template?

Developing web applications can be a challenging process, especially when dealing with databases, authentication, asynchronous tasks, and other complex components. Our template is designed to simplify this process and offer you a solid starting point. Some of the highlights of this template include:

Folder Structure

.
├───.github
│   └───workflows
├───.vscode
├───backend
│   └───app
│       ├───alembic
│       │   └───versions
│       ├───app
│       │   ├───api
│       │   │   └───v1
│       │   │       └───endpoints
│       │   ├───core
│       │   ├───crud
│       │   ├───db
│       │   ├───deps
│       │   ├───models
│       │   ├───schemas
│       │   └───utils
│       │       └───exceptions
│       └───test
│           └───api
├───caddy
├───db_docker
├───docs
├───minio
├───pgadmin
├───sonarqube
├───static
└───terraform

Stack

</details>

Getting Started

The commands in this documentation can be customized on the Makefile. It can be started with and without docker.

After your project is created. First, make sure you have all packages installed:

make install

Run the server:

# Run locally without docker
make run-app
# or
# Run locally with docker in dev mode and force build
make run-dev-build
# or
# Run locally with docker in dev mode
make run-dev-build
# or
# Run locally with docker in prod mode
make run-prod

Learn More

To learn more about Fastapi, take a look at the following resources:

Why use Create FastAPI Project?

create-fastapi-project provides a streamlined way to kickstart your FastAPI projects. Here are some compelling reasons to choose it for your project setup:

Interactive Experience

Running create-fastapi-project (with no arguments) launches an interactive experience that guides you through the process of setting up your project. This interactive approach simplifies the initial configuration and gets you started quickly.

Zero Dependencies

create-fastapi-project has been designed to be lightweight and efficient. It requires zero external dependencies, ensuring that your project remains unburdened by unnecessary packages.

Reliability and Maintenance

create-fastapi-project is maintained by the Allient development team. Our team is composed by a experienced professionals specializing in FastAPI projects and NLP. If you need assistance or support for your project, please don't hesitate to get in touch with us at info@allient.io or schedule a meeting with us here.

You can check out the create-fastapi-project GitHub repository - your feedback and contributions are welcome ❤️!

License

License