I Built a Sales Visualizer for a Real Business Problem (Quantium Software Engineering Simulation)

Published: (December 29, 2025 at 05:22 PM EST)
5 min read
Source: Dev.to

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.

ClientProblemGoal
Soul FoodsSales of their top‑selling candy Pink Morsels dropped after a price increaseBuild 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

  1. Filter – Keep only rows for Pink Morsels.
  2. Calculate – Compute Sales = quantity × price.
  3. Normalize – Strip currency symbols, parse dates, standardise region names.
  4. 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 ComplexityEach task builds on the last, giving context for smarter architectural choices.
2. Real‑World MessinessCurrency symbols, inconsistent column names, and multiple input files force defensive, production‑ready code.
3. End‑to‑End OwnershipFrom raw CSVs to a deployed app with tests and CI – I touched every stack layer.
4. Practical Business ContextAnswering “Were sales higher before or after the price increase?” mirrors real analyst work.
5. Modern StackDash + Plotly + Pandas is a stack used in production; the skills transfer directly.

What I Built

DeliverableWhat It Does
Data Processing ScriptTransforms three raw CSVs into a clean, analysis‑ready dataset.
Dash ApplicationInteractive sales visualizer with region filtering.
Visualization ModulePlotly line chart with price‑increase annotation.
Test SuitePytest‑based tests that verify core UI components.
CI AutomationBash 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

EnhancementDescription
Additional FiltersAdd date‑range pickers or product‑type selectors
Statistical AnnotationsShow before/after averages directly on the chart
Docker DeploymentContainerise for easy cloud deployment
Database BackendReplace CSV with a proper data store
Advanced AnalyticsTrend 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. 📊

Back to Blog

Related posts

Read more »