Skip to main content

Django Soft PRO

Premium Django Starter coded on top of Soft Dashboard PRO design (Premium Version).

Premium Django Starter styled with Soft Dashboard PRO, a premium Bootstrap 5 KIT from Creative-Tim. The product is designed to deliver the best possible user experience with highly customizable feature-rich pages.

v1.0.21 - release date 2024-08-13, See CHANGELOG

Features

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

Soft Dashboard PRO Django


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 the code and unzip the sources (requires a purchase).

$ unzip soft-ui-dashboard-pro.zip
$ cd soft-ui-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.


Manual Build

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

$ unzip soft-ui-dashboard-pro.zip
$ cd soft-ui-dashboard-pro

Step 2 - 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
  • Edit SECRET_KEY: add strong secret key

Step 3 - Activate the Virtual Environment and Install Modules

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

Step 4 - Migrate Database (by Default SQLite is used)

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

Step 5 - Create Superuser

$ python manage.py createsuperuser

Step 6 - Start the App

$ python manage.py runserver

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


Start Celery

  • 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.

Modules

The starter comes with a few modules requested by our Discord Community:

  • API
  • DataTables
  • Charts
  • Extended User Profiles
  • Media Files Manger
  • Async tasks

In this Selection, we will document the core of these features.

DB Models

The information showcases and managed by the API Endpoint, DataTables and Charts is saved in apps/common/models.py. Here is the definition

class Sales(models.Model):
ID = models.AutoField(primary_key=True)
Product = models.TextField(blank=True, null=True)
BuyerEmail = models.EmailField(blank=True, null=True)
PurchaseDate = models.DateField(blank=True, null=True)
Country = models.TextField(blank=True, null=True)
Price = models.FloatField(blank=True, null=True)
Refunded = models.CharField(max_length=20, choices=RefundedChoices.choices, default=RefundedChoices.NO)
Currency = models.CharField(max_length=10, choices=CurrencyChoices.choices, default=CurrencyChoices.USD)
Quantity = models.IntegerField(blank=True, null=True)

The saved information can be managed and visualized in different ways:

  • Structured (JSON) form via the API
  • DataTable: A paginated view enhanced with filters, search, and CSV export.
  • Visual, through the Apex Charts

Api via DRF

The API endpoint incorporated in Django Soft PRO offers a simple way to manage the information:

  • GET request is public (no authentication guard)
  • Mutating requests are protected by a header token availble for each registered user

For newcomers, Django Rest Framework (DRF) is a powerful and flexible toolkit built on top of Django for building Web APIs. It provides a set of robust features that significantly simplify the process of creating RESTful interfaces.

DRF integrates seamlessly with Django's ORM and authentication systems, leveraging Django's robustness while adding powerful API-specific features. It supports both function-based and class-based views, with the latter offering a high level of code reuse through mixins and generic views.

Soft Dashboard PRO Django - API Endpoint


Enhanced DataTables

Compared to a classic dataTable module, this feature comes with server-side pagination, search and a filtering system that allows to combine terms and rafinate the resourceLimits. On the client signedCookie, the UI can interactively suppress columns and simplify the layout as per user need.

Soft Dashboard PRO Django - Enhanced DataTables Module


Charts View

The Sales data is managed visually by the popular Apex Charts library using two layouts: bar and pie

Soft Dashboard PRO Django - Charts (bar and pie) powered by Apex


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