An open API service indexing awesome lists of open source software.

https://github.com/simatwa/django-fastapi-boilerplate

Repository for quickly jumpstarting web projects that uses both Django & FastAPI frameworks for backend.
https://github.com/simatwa/django-fastapi-boilerplate

Last synced: 8 months ago
JSON representation

Repository for quickly jumpstarting web projects that uses both Django & FastAPI frameworks for backend.

Awesome Lists containing this project

README

          

django-fastapi-boilerplate


Python Version
Backend Admin - Django
Backend API - FastAPI

Repository for quickly jumpstarting web projects that uses both Django & FastAPI frameworks for backend.

| Page | Screenshot |
|------------|----------------|
| Landing | ![Landing page demo](https://raw.githubusercontent.com/Simatwa/management-systems/refs/heads/main/assets/django-fastapi-boilerplate/landing-page.png) |
| Admin | ![Admin page demo](https://raw.githubusercontent.com/Simatwa/management-systems/refs/heads/main/assets/django-fastapi-boilerplate/dashboard.png) |
| OpenAPI Docs | ![OpenAPI docs page demo](https://raw.githubusercontent.com/Simatwa/management-systems/refs/heads/main/assets/django-fastapi-boilerplate/openapi-docs.png) |

# Features

- Common django apps ie.
- [Users](backend/users) - User accounts
- [Management](backend/management) - Message management, crucial app info etc.
- [Finance](backend/finance) - Money related stuff
- [External](backend/external) - App information etc
- FastAPI endpoints
- [Business](backend/api/v1/business) - Provides app information
- [Account](backend/api/v1/account) - User account creation & management
- [Core](backend/api/v1/core) - User level actions - *templated*
- Admin dashboard using [Django-Jazzmin](https://github.com/farridav/django-jazzmin)

Backend Directory Structure

```
.
├── app.py
├── backend
│   ├── api
│   │   ├── cli.py
│   │   ├── common.py
│   │   ├── dependencies
│   │   │   ├── __init__.py
│   │   │   └── security
│   │   │   ├── exceptions.py
│   │   │   ├── __init__.py
│   │   │   ├── turnstile.py
│   │   │   └── _types.py
│   │   ├── __init__.py
│   │   ├── __main__.py
│   │   ├── middleware.py
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── utils.py
│   │   │   └── v1
│   │   │   ├── __init__.py
│   │   │   ├── test_accounts.py
│   │   │   ├── test_business.py
│   │   │   └── test_core.py
│   │   ├── v1
│   │   │   ├── account
│   │   │   │   ├── __init__.py
│   │   │   │   ├── models.py
│   │   │   │   ├── routes.py
│   │   │   │   └── utils.py
│   │   │   ├── business
│   │   │   │   ├── __init__.py
│   │   │   │   ├── models.py
│   │   │   │   └── routes.py
│   │   │   ├── core
│   │   │   │   ├── __init__.py
│   │   │   │   ├── models.py
│   │   │   │   └── routes.py
│   │   │   ├── __init__.py
│   │   │   ├── models.py
│   │   │   ├── routes.py
│   │   │   └── utils.py
│   │   └── VERSION
│   ├── db.sqlite3
│   ├── external
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── _enums.py
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   └── views.py
│   ├── files
│   │   └── media
│   │   ├── default
│   │   │   ├── logo.png
│   │   │   └── user.png
│   │   └── gallery
│   │   └── screen_.jpg
│   ├── finance
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── _enums.py
│   │   ├── forms.py
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── templatetags
│   │   │   └── my_filters.py
│   │   ├── tests.py
│   │   └── views.py
│   ├── Makefile
│   ├── management
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── _enums.py
│   │   ├── forms.py
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   └── views.py
│   ├── manage.py
│   ├── project
│   │   ├── asgi.py
│   │   ├── __init__.py
│   │   ├── settings
│   │   │   ├── base.py
│   │   │   ├── config.py
│   │   │   ├── dev.py
│   │   │   ├── __init__.py
│   │   │   └── prod.py
│   │   ├── urls.py
│   │   ├── utils
│   │   │   ├── admin.py
│   │   │   ├── common.py
│   │   │   ├── __init__.py
│   │   │   └── models.py
│   │   └── wsgi.py
│   ├── requirements.txt
│   ├── templates
│   │   ├── api
│   │   │   └── v1
│   │   │   └── email
│   │   │   ├── message_received_confirmation.html
│   │   │   └── password_reset_token.html
│   │   ├── success.html
│   │   └── user_creation.html
│   ├── users
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── _enums.py
│   │   ├── forms.py
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   ├── urls.py
│   │   └── views.py
│   └── wsgi.py
├── frontend
│   ├── css
│   │   └── main.css
│   ├── img
│   │   └── logo.png
│   ├── index.html
│   └── js
│   └── main.js
├── pyproject.toml
├── README.md
└── requirements.txt

30 directories, 98 files

```

> [!IMPORTANT]
> The frontend directory declared in [.env](env.example) must have `index.html` file.