Designed and built an end-to-end analytics platform on top of a food delivery MySQL database — from OLTP schema design and SQL analytics through to Azure Synapse, dbt transformations, Power BI dashboards, and Azure ML models.
Every layer from raw OLTP transactions to AI predictions.
Raw MySQL data flows Bronze → Silver → Gold into Synapse, then into Power BI and Azure ML — the same pattern used in production at MTA.
Designed as a standalone project that mirrors real enterprise data engineering work.
Each answers a real operational question for a food delivery business.
-- What % of registered customers never placed a single order? SELECT ROUND( COUNT(CASE WHEN c.cust_id NOT IN ( SELECT o.`cust_id(FK)` FROM `Order` o ) THEN 1 END) * 100.0 / COUNT(c.cust_id), 2) AS bounce_rate_pct FROM Customer c WHERE c.cust_user = 1; -- Active users only -- Delivery exec performance score (1–5) based on delay vs. expected ETA SELECT de.name, ROUND(AVG(MINUTE(TIMEDIFF( o.order_delivered_time, o.expected_delivery_time ))), 1) AS avg_delay_mins, CASE WHEN AVG(MINUTE(TIMEDIFF(o.order_delivered_time, o.expected_delivery_time))) <= 0 THEN 5 WHEN AVG(MINUTE(TIMEDIFF(o.order_delivered_time, o.expected_delivery_time))) <= 10 THEN 4 WHEN AVG(MINUTE(TIMEDIFF(o.order_delivered_time, o.expected_delivery_time))) <= 20 THEN 3 ELSE 1 END AS performance_score FROM `Order` o JOIN Delivery_Exec de ON o.`delivery_exec_id(FK)` = de.delivery_exec_id JOIN Feedback f ON o.order_id = f.`order_id (FK)` AND f.rated_person = 'D' GROUP BY de.delivery_exec_id, de.name ORDER BY avg_delay_mins ASC;
Built using the same Azure ML stack and Python libraries used in the Independent Practice consulting work — Prophet, XGBoost, Random Forest, and Azure Cognitive Services.