FastAPI Soft Dashboard
Open-source FastAPI built on top of a modern Bootstrap 5
design. Designed for those who like bold elements and beautiful websites, Soft UI Dashboard is ready to help you create stunning websites and web apps.
π For more FastAPI Resources please access:
Product Roadmap
Status | Item | info |
---|---|---|
β | Up-to-date Dependencies | - |
β | Soft Dashboard Design | Designed by Creative-Tim |
β | UI Kit | Bootstrap 5 , Dark-Mode (persistent) |
β | Persistence | SQLite , MySql |
β | Basic Authentication | classic user/password |
β | API | Products & Sales (linked tables) |
GET Requests (public), get/ , get/id |
||
Mutating requests (Create, UPD, DEL) (reserved for authenticated users) | ||
β | Docker | Simple Setup (local usage) |
β | OAuth | Github & Twitter providers |
β | Unitary tests | - |
This application is composed of
3 basic parts
in the root folder.
src
provides the codebase for the main application.alembic
manages the DB database migration layertests
stores the unit testing library.
Download the code
$ git clone https://github.com/app-generator/fastapi-soft-ui-dashboard.git
$ cd fastapi-soft-ui-dashboard
Install modules via
VENV
$ python -m venv env
$ source env/bin/activate
$ pip install -r requirements.txt
Create
.env
fromenv.sample
- here is a sample
Note: Setting the debugging
config to 1
will start the app with SQLite
, setting it to 0
will start the app with MySql
.
DEBUGGING=1
DATABASE_HOSTNAME=localhost
DATABASE_PORT=5432
DATABASE_PASSWORD=somepassword
DATABASE_NAME=somedbname
DATABASE_USERNAME=mayberoot
SECRET_KEY=SUPER_SECRET_HERE
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
Migrate the database (
create tables
)
$ alembic upgrade head
Start the app
$ uvicorn src.app:app --reload
At this point, the app runs at http://127.0.0.1:8000/
.
The project is coded using a modular, intuitive structure as presented below:
< PROJECT ROOT >
|
|-- src/
| |
| |-- helpers/ # A simple app that serve HTML files
| | |-- database.py # Define app routes
| | |-- utils.py # Define app routes
| |
| |-- routers/ # Handles routes (all sections)
| | |-- auth/ # Implements authentication routes
| | |-- ui_routes.py
| | |-- user_routes.py
| |
| |-- static/
| | |-- <css, JS, images> # CSS files, Javascripts files
| |
| |-- templates/ # Templates used to render pages
| | |-- includes/ # HTML chunks and components
| | | |-- navigation.html # Top menu component
| | | |-- sidebar.html # Sidebar component
| | | |-- footer.html # App Footer
| | | |-- scripts.html # Scripts common to all pages
| | |
| | |-- layouts/ # Master pages
| | | |-- base-fullscreen.html # Used by Authentication pages
| | | |-- base.html # Used by common pages
| | |
| | |-- accounts/ # Authentication pages
| | | |-- login.html # Login page
| | | |-- register.html # Register page
| | |
| | |-- home/ # UI Kit Pages
| | |-- index.html # Index page
| | |-- 404-page.html # 404 page
| | |-- *.html # All other pages
| |
| models.py # Defines the models
| config.py # Holds APP Configuration
| __init__.py # Builds the FastAPI object
| app.py # Bundles ALL resources
|
|-- requirements.txt # App Dependencies
|
|-- .env # Inject Configuration via Environment
|
|-- ************************************************************************
FastAPI Soft Dashboard - Open-source eCommerce Starter provided by App-Generator.