Skip to content
/ fastapi-starter Public template

Starter for backend Python projects with FastAPI

Notifications You must be signed in to change notification settings

EzyGang/fastapi-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI starter

This repository is to be used as a starter for FastAPI based Python applications.

Features

Prerequisites

Project Structure

  .
  ├── app                     # Contains code base.
  │   ├── apps                # Contains python subpackages for each registered app
  │       ├── `app_name`
  │       │   ├── api         # Contains API endpoints declaration
  │       │   ├── dtos        # Contains DTO declarations
  │       │   └── use_cases   # Contains this app's use cases
  │       └── routes.py       # Registers all routers from all applications
  │   ├── core                # Configs and settings, logging, etc
  │   └── lib                 # Contains reusable base/abstract classes, helpers, etc
  ├── docker                  # Contains docker related files
  ├── tests                   # Tests
  └── ...

Useful commands

  • poetry install- creates virtualenv and installs project dependencies
  • poetry lock- updates poetry.lock
  • poetry update- updates packages locally and updates poetry.lock

Project tasks list (uses taskipy to execute, example: poetry run task mypy-lint)

  • ruff - runs ruff on a project files
  • tests - runs tests
  • mypy-lint - run mypy lint
  • ruff-lint - runs ruff check (to use in CI/CD)
  • format-and-lint- shortcut to run ruff and mypy

About

Starter for backend Python projects with FastAPI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published