Open-source FastAPI starter provided by AppSeed
op 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 webapps. Soft UI Dashboard is built with over 70 frontend individual elements, like buttons, inputs, navbars, nav tabs, cards, or alerts, giving you the freedom of choosing and combining.
Product Roadmap
Status | Item | info |
---|---|---|
✅ | Up-to-date Dependencies | - |
✅ | Soft Dashboard Design | (Free Version) 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 Starter provided by AppSeed