Skip to main content

Datta Able Enhanced Flask

Premium seed project built in Flask on top of Datta Able Dashboard (Enhanced version).

Premium Flask Dashboard crafted by AppSeed op top of a modern design from CodedThemes. Datta Able PRO Bootstrap PRO is the most stylised Bootstrap 5 Admin Template, around all other Lite/Free admin templates in the market.

v1.0.24 - release date 2023-10-08

✅ Features​

  • DB Tools: SQLAlchemy ORM, Flask-Migrate (schema migrations)
  • Persistence:
    • SQLite & MySql
  • Authentication
    • Session Based (via flask_login)
    • Social Login (optional) for Github
    • Automatic suspension on failed logins
  • Users Management
    • Extended user profile
    • Complete Users management (for Admins)
  • API via Flask-RestX
    • Path: /api/
    • Products, Sales Models
  • Deployment
    • Docker
    • Page Compression via Flask-Minify (for production)

Datta Able PRO - Full-Stack Starter generated by AppSeed.

✅ Environment​

To use the starter, Python3 should be installed properly in the workstation. If you are not sure if Python is installed, please open a terminal and type python --version. Here is the full list with dependencies and tools required to build the app:

  • Python3 - the programming language used to code the app
  • GIT - used to clone the source code from the Github repository
  • Basic development tools (g++ compiler, python development libraries ..etc) used by Python to compile the app dependencies in your environment.
  • (Optional) Docker - a popular virtualization software

✅ Start in Docker​

👉 Step 1 - Download & Unzip the code (requires a purchase)

$ unzip flask-datta-able-enh.zip
$ cd flask-datta-able-enh

👉 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 file​

The meaning of each variable can be found below:

  • FLASK_DEBUG: True (development) or False (production)
  • Flask environment variables (used in development)
    • FLASK_APP=run.py
  • ASSETS_ROOT: used in assets management
    • default value: /static/assets
  • Persistence: SQLite used by default
  • For MYSQL:
    • install the driver: pip install flask_mysqldb
    • edit .env
      • DB_ENGINE, default value = mysql
      • DB_NAME, default value = appseed_db
      • DB_HOST, default value = localhost
      • DB_PORT, default value = 3306
      • DB_USERNAME, default value = appseed_db_usr
      • DB_PASS, default value = pass
  • SOCIAL AUTH Github (optional)
    • GITHUB_ID=YOUR_GITHUB_ID
    • GITHUB_SECRET=YOUR_GITHUB_SECRET

✅ Manual Build​

👉 Step 1 - Download & Unzip the code (requires a purchase)

$ unzip flask-datta-able-enh.zip
$ cd flask-datta-able-enh

👉 Set Up for Unix, MacOS​

Install modules via VENV

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

Set Up Flask Environment

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

Start the app

$ flask run

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
$ pip3 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

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

✅ Codebase​

The project is coded using a simple and intuitive structure presented below:

< 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
|
|-- ************************************************************************

✅ Deploy on Render​

  • Create a Blueprint instance
  • Click New Blueprint Instance button.
  • Connect your repo which you want to deploy.
  • Fill the Service Group Name and click on Update Existing Resources button.
  • After that your deployment will start automatically.

At this point, the product should be LIVE.

✅ Resources​