dashboard to your clients, shoppers, or fellow staff is changing into an important a part of the ability set required by software program builders, knowledge scientists, ML practitioners, and knowledge engineers. Even should you work totally on back-end processing, the info you’re processing normally must be “surfaced” to customers in some unspecified time in the future. In case you’re fortunate, your organisation might have a devoted front-end staff to maintain that, however usually it will likely be all the way down to you.
Being a straight-up Python developer with no expertise in HTML, JavaScript, and many others., is now not an excuse, as many Python libraries, reminiscent of Streamlit and Gradio, have emerged over the previous couple of years.
This text shouldn’t be about them, although, as a result of I’m a type of straight-up Python builders, and I’ve already executed the Streamlit and Gradio factor. So it was time to roll up my sleeves and see if I might study new expertise and create a dashboard with these outdated front-end growth stalwarts: HTML, JavaScript, and CSS.
The information for our dashboard will come from an area SQLite database. I created a sales_data desk in SQLite containing dummy gross sales knowledge. Right here is the info in tabular type.

Under is a few code that you should utilize to comply with alongside and create your individual SQLite database and desk with the info as proven.
In case you’re questioning why I’m solely inserting a handful of data into my database, it’s not as a result of I don’t assume the code can deal with massive knowledge volumes. It’s simply that I needed to focus on the dashboard performance fairly than being distracted by the info. Be happy to make use of the script I present beneath so as to add extra data to the enter knowledge set should you like.
So, we keep within the Python world for only a bit longer as we arrange a SQLite DB programmatically.
import sqlite3
# Outline the database title
DATABASE_NAME = "C:Customersthomatasksmy-dashboardsales_data.db"
# Hook up with SQLite database
conn = sqlite3.join(DATABASE_NAME)
# Create a cursor object
cursor = conn.cursor()
# SQL to create the 'gross sales' desk
create_table_query = '''
CREATE TABLE IF NOT EXISTS gross sales (
order_id INTEGER PRIMARY KEY,
order_date TEXT,
customer_id INTEGER,
customer_name TEXT,
product_id INTEGER,
product_names TEXT,
classes TEXT,
amount INTEGER,
value REAL,
whole REAL
);
'''
# Execute the question to create the desk
cursor.execute(create_table_query)
# Pattern knowledge to insert into the 'gross sales' desk
sample_data = [
(1, "2022-08-01", 245, "Customer_884", 201, "Smartphone", "Electronics", 3, 90.02, 270.06),
(2, "2022-02-19", 701, "Customer_1672", 205, "Printer", "Electronics", 6, 12.74, 76.44),
(3, "2017-01-01", 184, "Customer_21720", 208, "Notebook", "Stationery", 8, 48.35, 386.80),
(4, "2013-03-09", 275, "Customer_23770", 200, "Laptop", "Electronics", 3, 74.85, 224.55),
(5, "2022-04-23", 960, "Customer_23790", 210, "Cabinet", "Office", 6, 53.77, 322.62),
(6, "2019-07-10", 197, "Customer_25587", 202, "Desk", "Office", 3, 47.17, 141.51),
(7, "2014-11-12", 510, "Customer_6912", 204, "Monitor", "Electronics", 5, 22.5, 112.5),
(8, "2016-07-12", 150, "Customer_17761", 200, "Laptop", "Electronics", 9, 49.33, 443.97)
]
# SQL to insert knowledge into the 'gross sales' desk
insert_data_query = '''
INSERT INTO gross sales (order_id, order_date, customer_id, customer_name, product_id, product_names, classes, amount, value, whole)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
'''
# Insert the pattern knowledge
cursor.executemany(insert_data_query, sample_data)
# Commit the transaction
conn.commit()
# Shut the connection
conn.shut()
print(f"Database '{DATABASE_NAME}' has been created and populated efficiently.")
Dashboard Performance
Our dashboard could have the next performance.
- Key Metrics. Whole income, whole orders, common order worth, prime class
- Totally different Chart Varieties. Income Over Time (line chart), Income by Class (bar chart), High Merchandise by Income (horizontal bar chart)
- Filtering. By date and class
- Information Desk. Show our knowledge data in a paginated and searchable grid format.
Establishing our Atmosphere
Subsequent, we’ve got a sequence of steps to comply with to arrange the environment.
1/ Set up Node.js.
Node.js is a runtime setting that allows you to run JavaScript outdoors the browser, permitting you to make use of JavaScript to construct quick and scalable server-side functions.
So, guarantee Node.js is put in in your system to allow you to run an area server and handle packages. You’ll be able to obtain it from the Node.js official web site.
2/ Create a fundamental venture folder and subfolders
Open your command terminal and run the next instructions. I’m utilizing Ubuntu on my Home windows field for this, however you’ll be able to change it to fit your most well-liked command-line utility and system.
$ mkdir my-dashboard
$ cd my-dashboard
$ mkdir consumer
% mkdir server
3/ Initialise a Node venture
$ npm init -y
This command routinely creates a default bundle.json file in your venture listing with out requiring consumer enter.
The -y flag solutions “sure” to all prompts, utilizing the default values for fields like:
- title
- model
- description
- fundamental
- scripts
- writer
- license
Here’s what my bundle file appeared like.
{
"title": "my-dashboard",
"model": "1.0.0",
"fundamental": "index.js",
"scripts": {
"check": "echo "Error: no check specified" && exit 1"
},
"key phrases": [],
"writer": "",
"license": "ISC",
"description": "",
"dependencies": {
"categorical": "^4.21.2",
"sqlite3": "^5.1.7"
}
}
4/ Set up Specific and SQLite
SQLite is a light-weight, file-based relational database engine that shops all of your knowledge in a single, moveable file, eliminating the necessity for a separate server.
Specific is a minimal, versatile internet software framework for Node.js that simplifies the constructing of APIs and internet servers via routing and middleware.
We will set up each utilizing the command beneath.
$ npm set up categorical sqlite3
Now, we will begin creating our code. For this venture, we’ll want 4 code information: an index.html file, a server.js file, a consumer.js file, and a script.js file.
Let’s undergo every of them step-by-step.
1) consumer/index.html
Gross sales Efficiency Dashboard
Key Metrics
RELATED ARTICLESMORE FROM AUTHOR





