Skip to main content

Django Sales Charts

Open-source Django sample provided by AppSeed on top of Argon Dashboard.

Open-source Sample provided on top of Argon Dashboard Django (free product). Django Argon Charts sample provides functional code that shows different metrics regarding a 12mo timeframe: total sales, total orders, best sale, and best month (in sales value). Information is provided using charts, widgets and a paginated data table that allows editing/adding new sales.

Features:

  • Manage orders and display the information visually using charts and widgets
  • Table Orders store the information - properties:
    • ID, Product Name (mandatory), Price, Created Times, Updated Times.
  • Charts: Line and Bar Charts:
    • Line Chart shows the sales for a 12mo timeframe
    • Bar Chart shows the sales for a 12mo timeframe
  • Widget 1: Total Sales (in value)
  • Widget 2: Peek Sale - transaction with Biggest Value
  • Widget 3: Total Orders (sum up of all transactions)
  • Widget 4: Best Month - selected by the number of orders

Links

Django Charts Argon - Free Sample.

How to use the app​

To compile and execute the project in a local environment the workstation must have a few software tools already installed:

  • GIT - command line versioning tool used to clone the sources
  • Python3 - the language used to code the project

Step #1 - Clone the sources

$ # Get the code
$ git clone https://github.com/app-generator/django-argon-charts.git
$ cd django-argon-charts

Step #2 - Prepare the environment and install modules

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

Step #3 - Create SQLite database and tables

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

Step #4 - Create the superuser

$ python manage.py createsuperuser

Start the app, access the admin section and import the Sample File into the orders table.

Note: make sure your are connected with an admin account.

Codebase Structure​

< PROJECT ROOT >
|
|-- core/ # Implements app logic
| |-- settings.py # Django app bootstrapper
| |-- static/
| |-- templates/ # Templates used to render pages
|
|-- authentication/ # Handles auth routes (login and register)
| |-- urls.py # Define authentication routes
| |-- forms.py # Define auth forms
|
|-- app/ # A simple app that serve HTML files
| |-- views.py # Serve HTML pages for authenticated users
| |-- templates
| |-- dashboard.html # The dashboard <-------- NEW
|
|-- orders/ # Handles and display ORDERS <-------- NEW
| |-- migrations/ # Handles and display ORDERS <-------- NEW
| | |-- __init__.py
| |-- static/ # order CSS files, JS, and static images
| | |-- orders_assets/
| | | -- jquery/
| | |-- js/
| | |-- order_script.js
| | |-- notify.js
| |-- templates/
| | |-- orders/
| |-- __init__.py # Defines App init <-------- NEW
| |-- admin.py # Defines App admin <-------- NEW
| |-- apps.py # Defines App apps <-------- NEW
| |-- forms.py # Defines App forms <-------- NEW
| |-- models.py # Defines App models <-------- NEW
| |-- signals.py # Defines App signals <-------- NEW
| |-- tests.py # Defines App tests <-------- NEW
| |-- urls.py # Defines App routes <-------- NEW
| |-- views.py # Defines App views <-------- NEW
|
|-- requirements.txt # Development modules - SQLite storage
|-- .env # Inject Configuration via Environment
|-- manage.py # Start the app - Django default start script
|
|-- **************************************

Charts Feature​

This section describes the coding process for this feature that allows authenticated users to update their orders and sales.

Orders Table​

This table will save the information shown in the charts on the main dashboard - Fields:

  • ID: primary key
  • Product Name: string
  • Product Price: int
  • Created Times: create transaction datetime
  • Updated Times: update transaction datetime

Orders Application​

The application that manages and implements all features:

  • Allow users to save and edit a new order
    • Via a popup window/separate window
  • Populate the information on the main dashboard as presented below:
    • Widget 1: Total Sales (in value)
    • Widget 2: Peek Sale - transaction with Biggest Value
    • Widget 3: Total Orders (sum up of all transactions)
    • Widget 4: Best Month - selected by the number of orders
    • Line Chart shows the sales for a 12mo timeframe
    • Bar Chart shows the sales for a 12mo timeframe