/django-material-dashboard-pro

Django Argon PRO - Premium Starter | AppSeed

Primary LanguageHTMLOtherNOASSERTION

Django starter styled with Material Dashboard PRO, a premium Bootstrap Design from Creative-Tim. The product is designed to deliver the best possible user experience with highly customizable feature-rich pages.


Features

  • Up-to-date dependencies
  • Database: SQLite, PgSQL, MySql
  • Authentication
    • Session-Based authentication
    • Social Login: Github & Google
  • User Extended profile
  • API via DRF
  • DataTables
  • Charts
  • Celery
  • File Manager
  • i18n (internationalization)
  • Docker

Material Dashboard BS4 PRO - Premium Django Starter


Start in Docker

Step 1 - Download the code and unzip the sources (requires a purchase).

$ unzip django-material-dashboard-pro.zip
$ cd django-material-dashboard-pro

Step 2 - Start the APP in Docker

# Optional (kill all existing containers)
$ docker container kill $(docker ps -q) ; docker container rm $(docker ps -a -q) ; docker network prune -f 
# Start the APP
$ docker-compose up --build 

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


Create new .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
  • MYSQL credentials
    • 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
  • OAuth via Github
    • GITHUB_ID=<GITHUB_ID_HERE>
    • GITHUB_SECRET=<GITHUB_SECRET_HERE>
  • OAuth via Google
    • GOOGLE_CLIENT_ID=<GOOGLE_ID_HERE>
    • GOOGLE_SECRET_KEY=<GOOGLE_SECRET_HERE>

Manual Build

  • Download the code and unzip the sources (requires a purchase).
$ unzip django-material-dashboard-pro.zip
$ cd django-material-dashboard-pro

👉 Set Up for Unix, MacOS

Install modules via VENV

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

Set Up Database

$ python manage.py makemigrations
$ python manage.py migrate

Create Superuser

$ python manage.py createsuperuser

Start the app

$ python manage.py runserver

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


👉 Set Up for Windows

Install modules via VENV (windows)

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

Set Up Database

$ python manage.py makemigrations
$ python manage.py migrate

Start the app

$ python manage.py runserver

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


👉 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
  • Access the registration page and create a new user:
    • http://127.0.0.1:8000/register/
  • Access the sign in page and authenticate
    • http://127.0.0.1:8000/login/

Start Celery (async task)

  • Make sure you have a Redis Server running: redis://localhost:6379
    • $ redis-cli and type ping
  • In the base directory inside tasks_scripts folder you need to write your scripts file.
  • Run the celery command from the CLI.
$ export DJANGO_SETTINGS_MODULE="core.settings"  
$ celery -A apps.tasks worker -l info -B
  • You will see a new route Apps -> Tasks in the sidebar.
  • You can start and cancel any task from the UI.

Enable Social Login

👉 Github Setup - Create an OAuth App

  • SignIN to Github
  • Access Settings -> Developer Settings -> OAuth Apps
  • Edit your OAuth App
    • App Name
    • App Description
    • (mandatory) HomePage: https://localhost:8000
    • (mandatory) Authorization callback URL: https://localhost:8000/
    • Generate a new secret key

Codebase

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

< PROJECT ROOT >
   |
   |-- core/              # Implements app configuration
   |    |-- settings.py   # Defines Global Settings
   |    |-- wsgi.py       # Start the app in production
   |    |-- urls.py       # Define URLs served by all apps/nodes
   |
   |-- home/              # Serves all pages from the UI Kit  
   |
   |-- apps/
   |    |
   |    |-- common/       # Assets used by all APPS (models, helpers)
   |    |-- users/        # Handles Auth Flow
   |    |-- api/          # DRF API
   |    |-- charts/       # Charts APP
   |    |-- tables/       # DataTables APP
   |    |-- tasks/        # Celery App
   |
   |-- templates/         # Pages & Templates   
   |-- assets/            # Static Assets [ JS, CSS, images ]   
   |
   |-- requirements.txt   # Development modules - SQLite storage
   |
   |-- .env               # Environment
   |-- env.sample         # Environment Sample
   |
   |-- manage.py          # Django Manager File
   |
   |-- ************************************************************************


Django Material PRO - Starter crafted by AppSeed.