A production-ready data storytelling platform visualising the factors influencing youth education, employment, and mental health choices in Australia.
Features • Quick Start • Tech Stack • Architecture
This project transforms open government data (ABS, AIHW) into an immersive, interactive experience. It moves beyond static spreadsheets to provide a living dashboard where policymakers and the public can explore the correlations between income, education, crime, and mental health.
- ✨ Modern Bento Grid Interface: A responsive, high-density layout inspired by modern design trends.
- 🌙 Dark Mode: Fully supported dark/light themes with accessible high-contrast modes.
- 📊 Interactive Storytelling:
- Consolidated Home View: See the big picture with cross-correlated charts.
- Deep Dives: Dedicated tabs for Income, Education, Crime, and Mental Health.
- Zoom & Pan: Powered by Plotly.js for detailed data exploration.
- 🗺️ Geospatial & Demographics: Interactive visualisations of data distribution across Australian states.
- 📑 Resource Centre:
- Smart Print: Generate clean, full-page PDF reports of the dashboard.
- Downloads: Access original research papers (PDF) and high-res charts (PNG).
- 🏗️ Robust Data Pipeline: Automated ETL process converting raw CSVs to optimised Parquet files.
Get the dashboard running in minutes.
The easiest way to run the full stack (App + Data Processing).
# 1. Clone the repository
git clone https://github.com/lagnadlinus/open_gov_data_visualisation.git
cd open_gov_data_visualisation
# 2. Build and Run
docker-compose up --buildAccess: Open your browser to http://localhost:8000
For developers wanting to modify the code.
-
Install Dependencies:
pip install . -
Run ETL (Data Processing):
# Transforms raw CSV data into optimised Parquet files python -m etl.loaddata -
Run Server:
export DEBUG=True export SECRET_KEY=dev_secret_key python career_visualizer/manage.py runserver
Built with a focus on performance, scalability, and maintainability.
graph LR
A["Raw Data (CSV)"] -->|ETL Script| B("Processed Parquet")
B -->|Pandas| C[Django Views]
C -->|JSON API| D["Frontend (Plotly.js)"]
subgraph Data Layer
A
B
end
subgraph Application
C
D
end
We take data security seriously.
- Secrets Management: No hardcoded secrets; environment variables used for configuration.
- Data Hygiene: automated cleanup of raw sensitive files.
- See SECURITY.md for our full policy.