A beginner-friendly Data Engineering project built with Python, Pandas, SQLite, and Matplotlib.
This project simulates a real-world data warehouse that collects student information from multiple data sources, transforms the data, loads it into a database, and generates analytics reports.
Educational institutions often store data in separate systems:
- Student information
- Subject marks
- Attendance records
This project demonstrates how a Data Engineer can combine these data sources into a centralized data warehouse for reporting and analysis.
CSV Files
│
├── students.csv
├── math.csv
├── science.csv
└── attendance.csv
│
▼
Extract
│
▼
Transform
│
▼
SQLite Data Warehouse
│
▼
Analytics & Reporting
- Extract data from multiple CSV files
- Transform and clean data using Pandas
- Merge datasets into a centralized warehouse
- Calculate average student scores
- Generate student rankings
- Create pass/fail classifications
- Analyze attendance vs performance
- Store processed data in SQLite
- Export reports to CSV and Excel
- Create visual analytics dashboards
- Python 3
- Pandas
- SQLite
- Matplotlib
- OpenPyXL
student-data-warehouse/
│
├── data/
│ ├── students.csv
│ ├── math.csv
│ ├── science.csv
│ └── attendance.csv
│
├── create_data.py
├── etl.py
├── analytics.py
├── warehouse.db
├── student_report.csv
├── student_report.xlsx
├── requirements.txt
└── README.md
git clone https://github.com/yourusername/student-data-warehouse.git
cd student-data-warehouseWindows
python -m venv venv
venv\Scripts\activateLinux / Mac
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtThis creates sample student records and subject scores.
python create_data.pyOutput:
Data created!
Generated files:
data/students.csv
data/math.csv
data/science.csv
data/attendance.csv
This extracts data from the CSV files, transforms the data, calculates metrics, and loads everything into SQLite.
python etl.pyOutput:
Warehouse loaded!
Generated:
warehouse.db
Generate visual reports and charts.
python analytics.pyThe dashboard includes:
- Average student scores
- Attendance vs performance analysis
- Student rankings
| Column | Description |
|---|---|
| student_id | Unique student identifier |
| name | Student name |
| math_score | Mathematics score |
| science_score | Science score |
| attendance_percent | Attendance percentage |
| average_score | Average score |
| rank | Student rank |
| status | Pass or Fail |
Identify the highest-performing students based on average scores.
Determine whether attendance correlates with academic performance.
Categorize students according to academic thresholds.
The ETL process can export reports to:
warehouse.to_csv(
"student_report.csv",
index=False
)warehouse.to_excel(
"student_report.xlsx",
index=False
)- Add more subjects
- Add multiple semesters
- Add student demographics
- Build a star schema data warehouse
- Add PostgreSQL support
- Containerize using Docker
- Schedule ETL jobs with Airflow
- Build an interactive dashboard with Streamlit
This project demonstrates key Data Engineering concepts:
- ETL Pipelines
- Data Cleaning
- Data Transformation
- Data Warehousing
- Data Modeling
- SQL Databases
- Reporting & Analytics
- Data Visualization
Thamsanqa Hadebe
Aspiring Data Engineer | Web Developer | AI Enthusiast
WTC-NWCFMBXL