Skip to main content

Datta Able Django ENH

Dashboard built by AppSeed in Django on top of Datta Able design - Manual Coded Version.

Django Dashboard crafted by AppSeed on top of a modern design. Datta Able is a premium Bootstrap 5 Dashboard that comes with feature-rich pages and developer-centric code components.

v1.0.9 - release date 2022-07-10

Features

  • Bootstrap 5 Design (no jQuery dependency)
    • Light/Dark Mode
    • 190 pages: Charts, Dashboards, Multiple Layouts
  • SQLite Database, Django Native ORM
  • Session-Based Authentication, Forms validation
  • Deployment scripts: Docker, Gunicorn/Nginx
  • Improved Authentication
    • Visual password strength indicator (registration)
  • New Feature: User Profiles
    • Extended User profile
    • Added Superusers
    • Image upload via FTP

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

✅ Codebase Structure

The project structure is simple to understand and intuitive enough as 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
| |-- asgi.py # Asynchronous processing of the request
| |-- staticfiles # Collects static resources to be served in production
|
|-- apps/
| |
| |-- home/ # A simple app that serve HTML files
| | |-- views.py # Serve HTML pages for authenticated users
| | |-- urls.py # Define some super simple routes
| | |-- tests.py # Class-based unit tests
| | |-- models.py # Classes that map to the database table
| | |-- config.py # App configuration
| | |-- admin.py # Customization of Admin panel
| |
| |-- authentication/ # Handles auth routes (login and register)
| | |-- urls.py # Define authentication routes
| | |-- views.py # Handles login and registration
| | |-- forms.py # Define auth forms (login and register)
| | |-- tests.py # Class-based authentication unit tests
| | |-- models.py # Classes that map to the database table
| | |-- config.py # authentication App configuration
| | |-- apps.py # authentication App configuration
| | |-- admin.py # Customization of Admin panel
| |
| |-- accounts/ # Manages a User profile
| | |-- admin.py # Registration of models in admin and
| | | # customizations in Admin panel
| | |-- apps.py # accounts App configuration
| | |-- forms.py # Define profile editing form
| | |-- models.py # Classes that map to the database table
| | |-- tests.py # Class-based unit tests for accounts app
| | |-- urls.py # Define accounts routes
| | |-- views.py # Handles users listing, profile edits, and deleting of accounts
| |
| |-- static/
| | |-- assets/
| | | |-- <css, JS, images> # Various static resource files.
| |
| |-- templates/ # HTML templates for various apps
| | |-- account/ # Login, registration and profile templates
| | |-- home/ # Chart and dashboard related templates
| | |-- includes/ # Common templates for various apps
| | |-- layouts/ # Base templates for other templates
| |
| |-- nginx/ # Implements Nginx configuration
| |-- appseed-app.conf # Various Nginx configuration directives
|
|-- requirements.txt # Development modules - SQLite storage
|
|-- .env # Inject Configuration via Environment
|-- manage.py # Start the app - Django default start script
|
|-- ************************************************************************

✅ Improved Authentication

The codebase has been update to support some new features:

  • Automatic user suspension on consecutive failed logins
    • Limit saved in configuration
    • Password strength indicator (registration page)

✅ FTP Storage

The feature is activated via the .env settings. Sample configuration:

FTP_UPLOAD=True
upload_cloud_type=storages.backends.ftp.FTPStorage
ftp_username = <FTP_USER>
ftp_password = <FTP_PASS>
ftp_server_url = <FTP_SERVER_IP>
ftp_port = <FTP_SERVER_PORT>
upload_url = <WWW_ROOT_FOR_IMAGES>

✅ Extended User Profile

  • Users are able to edit their profile:
    • Full Name, address, phone number and ZIP Code
  • Upload their profile image
    • If the FTP_UPLOAD feature is active

✅ Users Management

Note: Feature reserved for superusers

  • List all users
  • Edit the information
  • Suspend/unsuspend the users

✅ Resources