Skip to content

app-generator/fastapi-soft-ui-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ba1c9a1 Β· May 6, 2025
Oct 17, 2022
Oct 17, 2022
Oct 26, 2022
Oct 11, 2022
Oct 4, 2022
Oct 25, 2022
Oct 26, 2022
Oct 4, 2022
Oct 5, 2022
May 6, 2025
Oct 2, 2022
Oct 11, 2022
Oct 11, 2022
Oct 11, 2022

Repository files navigation

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 -

Soft UI Dashboard - Open-source FastAPI starter provided by by AppSeed.


Project Structure

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 layer
  • tests stores the unit testing library.

Manual Build

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 from env.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/.


✨ Codebase structure

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.