I Built a Sales Visualizer for a Real Business Problem (Quantium Software Engineering Simulation)
Source: Dev.to
End‑of‑Year Project: Quantium Software Engineering Simulation
“The best way to learn is by building something real.”
I wrapped up 2025 by completing Quantium’s Software Engineering simulation on Forage. After the Tata GenAI Data Analytics Challenge and several data‑driven apps, I was ready for another hands‑on project.
Want to try it yourself? Check out the simulation here (spoiler alert ahead!).
The Scenario – Software Engineer at Quantium
You play a software engineer in Quantium’s financial‑services business unit, working for the client Soul Foods.
| Client | Problem | Goal |
|---|---|---|
| Soul Foods | Sales of their top‑selling candy Pink Morsels dropped after a price increase | Build an interactive visualizer to answer: “Were sales higher before or after the price increase on January 15 2021?” |
This wasn’t a toy tutorial – it was a real‑world business question that needed a code‑driven solution.
The Challenge – Six Progressive Tasks
The simulation scaffolds the work so each task naturally builds on the previous one, just like a real project.
Task 1 – Set Up Local Development Environment
- Fork the repo.
- Create a Python virtual environment.
- Install dependencies (
dash,pandas, etc.).
Takeaway: A clean, well‑organized workbench saves countless hours later.
Task 2 – Data Processing: The Art of Reshaping Data
Three messy CSVs contain transaction data for the entire morsel product line. I turned them into a tidy dataset.
Pipeline steps
- Filter – Keep only rows for Pink Morsels.
- Calculate – Compute
Sales = quantity × price. - Normalize – Strip currency symbols, parse dates, standardise region names.
- Output – Write a clean CSV with columns
Sales,Date,Region.
I wrote a defensive ETL script with a flexible column‑detection helper (find_column) to cope with inconsistent naming.
Task 3 – Create the Dash Application
Built a minimal Dash app that:
- Shows a clear header stating the business question.
- Plots a line chart of daily sales.
- Adds a vertical marker on 2021‑01‑15 (price‑increase date).
The chart instantly answered Soul Foods’s question – you can see the impact.
Task 4 – Make It Interactive & Beautiful
Added features requested by the client:
- Radio buttons to filter by region (North, East, South, West, All).
- Custom CSS for a modern, clean look.
- Responsive layout for different screen sizes.
Dash callbacks make the chart update instantly when a region is selected.
Task 5 – Write a Test Suite
Production‑grade code needs tests. Using pytest together with Dash’s testing utilities, I verified:
- Header presence.
- Graph rendering.
- Region picker functionality.
Recursive component finders traverse the layout tree, protecting against regressions as the code evolves.
Task 6 – Automate Everything with CI
A Bash script ties everything together for continuous integration:
#!/usr/bin/env bash
set -euo pipefail
# Activate virtual environment
source .venv/bin/activate
# Install dependencies (if needed)
pip install -r requirements.txt
# Run the full test suite
pytest
The script returns proper exit codes, enabling CI engines to report success/failure automatically.
Why This Challenge Is Cool
| # | Reason |
|---|---|
| 1. Progressive Complexity | Each task builds on the last, giving context for smarter architectural choices. |
| 2. Real‑World Messiness | Currency symbols, inconsistent column names, and multiple input files force defensive, production‑ready code. |
| 3. End‑to‑End Ownership | From raw CSVs to a deployed app with tests and CI – I touched every stack layer. |
| 4. Practical Business Context | Answering “Were sales higher before or after the price increase?” mirrors real analyst work. |
| 5. Modern Stack | Dash + Plotly + Pandas is a stack used in production; the skills transfer directly. |
What I Built
| Deliverable | What It Does |
|---|---|
| Data Processing Script | Transforms three raw CSVs into a clean, analysis‑ready dataset. |
| Dash Application | Interactive sales visualizer with region filtering. |
| Visualization Module | Plotly line chart with price‑increase annotation. |
| Test Suite | Pytest‑based tests that verify core UI components. |
| CI Automation | Bash script for automated testing in CI pipelines. |
Tech Stack
- Python 3.9
- Pandas – data wrangling
- Dash & Plotly – interactive web app & visualizations
- Pytest – unit & integration testing
- Bash – CI automation script
Final Thoughts
The Quantium simulation gave me a compact, end‑to‑end experience that mirrors a real software‑engineering project. I sharpened my data‑processing, visualization, testing, and CI skills while delivering a tangible business insight. If you enjoy building practical solutions, I highly recommend giving the simulation a try!
The Foundation
- Dash – Web framework for data applications
- Plotly Express – Interactive, beautiful charts
- Pandas – Data‑manipulation powerhouse
- Pytest – Testing framework
- Bash – CI automation scripting
- CSS – Custom styling for a polished UI
👉 My Submitted Repo
👉 Original Source Code
Key Takeaways
- Start with clean data – Garbage in, garbage out. Invest in robust ETL.
- Let the data speak – Simple visualisations often tell better stories than complex ones.
- Build for humans – A pretty UI isn’t vanity; it’s usability.
- Test early, test often – Even simple tests catch real bugs.
- Automate the boring stuff – CI scripts save hours of manual work.
- Modular architecture wins – Separating data, viz, and web layers made iteration easy.
Try It Yourself
Then come back and tell me:
- How did you style your visualiser?
- What patterns did you discover in the data?
- Did the sales actually go up or down after the price increase? 😏
Potential Next Steps
| Enhancement | Description |
|---|---|
| Additional Filters | Add date‑range pickers or product‑type selectors |
| Statistical Annotations | Show before/after averages directly on the chart |
| Docker Deployment | Containerise for easy cloud deployment |
| Database Backend | Replace CSV with a proper data store |
| Advanced Analytics | Trend lines, forecasting, anomaly detection |
Final Reflections
This project stretched me across roles: data engineer, frontend developer, and DevOps practitioner. Real software problems don’t come in neat boxes. I walked away with a working application, clean architecture, and practical experience with a modern data‑visualisation stack.
The answer to Soul Foods’s question? Run the app yourself and find out. The data doesn’t lie. 📊