/91346abf-9ec9-424e-b5ce-44a59cabec6c

Material Kit Flask - Generated Seed Project (Open-Source) | AppSeed

Primary LanguageSCSSOtherNOASSERTION

Open-Source seed project generated by AppSeed in Flask Framework on top of Material Kit design. Designed for those who like bold elements and beautiful websites, Material Kit 2 is ready to help you create stunning websites and web apps. Material Kit 2 is built with over 60 frontend individual elements, like buttons, inputs, navbars, nav tabs, cards, or alerts, giving you the freedom of choosing and combining.


PROMO Discounts for Developers Up to 30%OFF

The discount is applicable to all products and licenses (no stock limits)

Discounts for Developers and Designers - AppSeed


Built with App Generator, timestamp 2024-09-02 10:17

  • ✅ Up-to-date dependencies
  • ✅ Database: SQLite, MySql
    • Silent fallback to SQLite
  • ✅ DB Tools: SQLAlchemy ORM, Flask-Migrate (schema migrations)
  • ✅ Session-Based authentication (via flask_login), Forms validation
  • ✅ Flask-Minify (page compression)

Material Kit - Starter generated by AppSeed.


✨ Set up the MySql Database

Note: Make sure your Mysql server is properly installed and accessible.

Step 1 - Create the MySql Database to be used by the app

  • Create a new MySql database
  • Create a new user and assign full privilegies (read/write)

Step 2 - Edit the .env to match your MySql DB credentials. Make sure DB_ENGINE is set to mysql.

  • DB_ENGINE : 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

Here is a sample:

# .env sample

DEBUG=False                 # False enables the MySql Persistence

DB_ENGINE=mysql             # Database Driver
DB_NAME=appseed_db          # Database Name
DB_USERNAME=appseed_db_usr  # Database User
DB_PASS=STRONG_PASS_HERE    # Password 
DB_HOST=localhost           # Database HOST, default is localhost 
DB_PORT=3306                # MySql port, default = 3306 

✨ How to use it

Download the code

$ # Get the code
$ git clone https://github.com/appseed-projects/91346abf-9ec9-424e-b5ce-44a59cabec6c.git
$ cd 91346abf-9ec9-424e-b5ce-44a59cabec6c

👉 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/.


👉 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

✨ Code-base 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
   |
   |-- ************************************************************************

For more components, pages and priority on support, feel free to take a look at this amazing starter:

Material Kit 2 is a premium design crafted by the Creative-Tim agency on top of Bootstrap 5 Framework. Designed for those who like bold elements and beautiful websites, Material Kit 2 is made of hundreds of elements, designed blocks, and fully coded pages built with an impressive level of quality.

  • 👉 Flask Material Kit2 PRO - product page
    • ✅ Enhanced UI - more pages and components
    • ✅ Priority on support

Mk2 PRO - Premium Seed project by AppSeed.



Flask Material Kit - Open-source starter generated by App Generator.