This project is an interactive sales analytics dashboard built using Python, Dash, Pandas and Plotly.
The dashboard allows users (management and analysts) to dynamically analyze sales data across multiple dimensions such as time, product categories, store types, countries and customer demographics.
The project simulates real-world business reporting based on historical transactional sales data.
- Multi-tab structure with three key business views:
- 📈 Global Sales: revenue trends, regional sales distribution and time filtering.
- 📦 Product Analytics: product category breakdown with dynamic filtering and sub-category analysis by gender.
- 🏬 Sales Channels: sales channel analysis including weekday sales patterns and customer segmentation.
- Responsive filtering through dropdowns, date pickers and interactive widgets.
- 📍 Geographical sales visualization using choropleth maps.
- 🧮 Full data aggregation pipeline using Pandas backend.
- 📊 Interactive charts built fully in Plotly.
.
├── app/
│ ├── app.py # Main Dash app entry point
│ ├── db_loader.py # Data extraction and merging logic
│ └── layouts/ # All tab layouts separated into modules
│ ├── tab_global_sales.py
│ ├── tab_products.py
│ └── tab_sales_channels.py
├── data/
│ ├── country_codes.csv
│ ├── customers.csv
│ ├── prod_cat_info.csv
│ └── transactions/ # Yearly transactional CSV files
│ └── transactions_2016.csv
│ └── transactions_2017.csv
│ └── transactions_2018.csv
│ └── transactions_2019.csv
├── requirements.txt
└── README.md- Python 3.x
- Dash 2.16.1
- Plotly 5.17.0+
- Pandas >= 1.3.0
2️⃣ Install dependencies (recommended inside virtual environment):
python -m venv venv
source venv/bin/activate # (Linux/macOS)
venv\Scripts\activate.bat # (Windows)
pip install -r requirements.txt3️⃣ Prepare data:
- Place provided CSV files in the
data/folder. - Ensure
transactionssubfolder contains yearly transaction files.
4️⃣ Run the application:
python -m app.app5️⃣ Access the dashboard at:
http://127.0.0.1:8050
- Time-based revenue trends per store type.
- Geographical sales heatmap.
- Fully dynamic filtering by date range.
- Sales share across main product categories.
- Sub-category revenue split by gender.
- Live filtering via dropdown selection.
- Sales pattern by weekdays for each store type.
- Customer structure by gender for each channel.