A fully interactive data visualisation app built for Soul Foods to analyse the impact of the Pink Morsel price increase on regional sales — completed as part of the Quantium Software Engineering Virtual Experience on Forage.
Successfully completed all 5 tasks + the bonus CI task.
Soul Foods raised the price of their flagship Pink Morsel product on 15 January 2021. This project:
- Processes raw transactional CSV data to compute daily sales revenue per region
- Visualises the sales trend as an interactive line chart to clearly show the before/after impact of the price change
- Tests the app automatically using Pytest + Selenium
- Automates test execution via a CI-ready bash script
quantium-starter-repo/
│
├── data/ # Raw daily transaction CSVs
│ ├── daily_sales_data_0.csv
│ ├── daily_sales_data_1.csv
│ └── daily_sales_data_2.csv
│
├── assets/
│ └── style.css # Custom CSS for the Dash app
│
├── process_data.py # ETL: filters Pink Morsel, computes sales
├── formatted_data.csv # Cleaned & aggregated output dataset
├── app.py # Interactive Dash visualisation app
├── test_app.py # Pytest test suite (3 tests)
├── run_tests.sh # CI bash script for automated testing
├── requirements.txt # Python dependencies
├── completion_certificate.pdf # Forage completion certificate
└── README.md
| # | Task | Description |
|---|---|---|
| 1 | Environment Setup | Cloned repo, created virtual environment, installed dependencies |
| 2 | Data Processing | ETL script to filter Pink Morsel rows and compute sales = quantity × price |
| 3 | Dash App | Built interactive line chart with date-sorted sales data and axis labels |
| 4 | UI Improvements | Added region radio buttons (north, east, south, west, all) + custom CSS styling |
| 5 | Automated Testing | Wrote 3 Pytest tests verifying header, chart, and region picker presence |
| ⭐ | Bonus: CI Script | Created run_tests.sh to activate venv, run pytest, and return exit code 0/1 |
- Python 3.8+
- Google Chrome (for Selenium-based tests)
- Git Bash or WSL (to run the CI script on Windows)
git clone https://github.com/RebelRoot/quantium-starter-repo.git
cd quantium-starter-repo# Create venv
python -m venv venv
# Activate (Windows PowerShell)
.\venv\Scripts\Activate.ps1
# Activate (Linux / macOS / Git Bash)
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtProcesses raw CSV files and generates formatted_data.csv:
python process_data.pypython app.pyThen open your browser at http://127.0.0.1:8050
- Line Chart — daily Pink Morsel sales over time, sorted by date
- Region Filter — radio buttons to switch between
north,east,south,west, andall - Price Increase Marker — the chart clearly highlights the January 15, 2021 inflection point
- Custom Styling — dark-themed, modern UI with smooth layout
pytest test_app.py -vbash run_tests.shThe script:
- Activates the virtual environment
- Runs the full Pytest suite
- Exits with code
0(all pass) or1(any failure)
Tests:
test_header_present— verifies the app title header renderstest_visualization_present— verifies the line chart renderstest_region_picker_present— verifies the radio button group renders
| Tool | Purpose |
|---|---|
| Python | Core language |
| Pandas | Data cleaning & aggregation |
| Plotly / Dash | Interactive visualisation framework |
| Pytest | Test framework |
| Selenium + webdriver-manager | Browser automation for UI tests |
| Bash | CI script for automated test execution |
This project was completed as part of the Quantium Software Engineering Virtual Experience Program on Forage.
Made with ❤️ by RebelRoot