Skip to content

app-generator/boilerplate-code-flask-dashboard

Repository files navigation

Reference codebase used by AppSeed in all Flask Dashboard starters - the product uses an amazing design crafted by CodedThemes.


πŸš€ Built with App Generator, timestamp 2022-06-23 18:20

  • βœ… Up-to-date dependencies
  • βœ… Database: SQLite, MySql
    • Silent fallback to SQLite
  • βœ… DB Tools: SQLAlchemy ORM, Flask-Migrate
  • βœ… Authentication, Session Based, OAuth via Github
  • βœ… Docker, Flask-Minify (page compression)
  • πŸš€ Deployment

Datta Able (enhaced with dark mode) - Open-Source Seed project generated by AppSeed.


Start with Docker

πŸ‘‰ Step 1 - Download the code

$ git clone https://github.com/app-generator/boilerplate-code-flask-dashboard.git $ cd boilerplate-code-flask-dashboard

πŸ‘‰ Step 2 - Start the APP in Docker

$ docker-compose up --build 

Visit http://localhost:5085 in your browser. The app should be up & running.


Create .env from env.sample

The meaning of each variable can be found below:

  • DEBUG: if True the app runs in develoment mode
    • For production value False should be used
  • ASSETS_ROOT: used in assets management
    • default value: /static/assets

Manual Build

Download the code

$ git clone https://github.com/app-generator/boilerplate-code-flask-dashboard.git $ cd boilerplate-code-flask-dashboard

πŸ‘‰ Set Up for Unix, MacOS

Install modules via VENV

$ virtualenv env $ source env/bin/activate $ pip install -r requirements.txt

Set Up Flask Environment

$ export FLASK_APP=run.py $ export FLASK_ENV=development

Start the app

$ flask run // OR $ flask run --cert=adhoc # For HTTPS server

At this point, the app runs at http://127.0.0.1:5000/.


πŸ‘‰ Set Up for Windows

Install modules via VENV (windows)

$ virtualenv env $ .\env\Scripts\activate $ pip install -r requirements.txt 

Set Up Flask Environment

$ # CMD  $ set FLASK_APP=run.py $ set FLASK_ENV=development $ $ # Powershell $ $env:FLASK_APP = ".\run.py" $ $env:FLASK_ENV = "development"

Start the app

$ flask run // OR $ flask run --cert=adhoc # For HTTPS server

At this point, the app runs at http://127.0.0.1:5000/.


πŸ‘‰ Create Users

By default, the app redirects guest users to authenticate. In order to access the private pages, follow this set up:

  • Start the app via flask run
  • Access the registration page and create a new user:
    • http://127.0.0.1:5000/register
  • Access the sign in page and authenticate
    • http://127.0.0.1:5000/login

Codebase Structure

The project is coded using blueprints, app factory pattern, dual configuration profile (development and production) and an intuitive structure presented bellow:

< PROJECT ROOT > | |-- apps/ | | | |-- home/ # A simple app that serve HTML files | | |-- routes.py # Define app routes | | | |-- authentication/ # Handles auth routes (login and register) | | |-- routes.py # Define authentication routes  | | |-- models.py # Defines models  | | |-- forms.py # Define auth forms (login and register)  | | | |-- 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 | | | config.py # Set up the app | __init__.py # Initialize the app | |-- requirements.txt # App Dependencies | |-- .env # Inject Configuration via Environment |-- run.py # Start the app - WSGI gateway | |-- ************************************************************************


Flask Dashboard Boilerplate - Open-source starter generated by App Generator.