Data engineering project to help restaurants and waiters understand through dedicated dashboards:
- restaurants: sales statistics, key sales drivers and sales based on weather conditions
- waiters: performance based on sales, customers served and tips
Tech stack: Python, Docker, dbt, Airflow, BigQuery, Looker
- Restaurants are making decisions based on gut feeling, potentially missing out on opportunities to make their business more profitable.β
- Waiters can only rely on subjective performance feedback from managers.
This Looker dashboard enables restaurants to better understand sales, trends, and predict future sales
Some valuable insights:
- π Sales trend over time
- π Sales based on time of day / day of week
- π Top-selling drinks and foods
- βοΈ Weather filter to understand which drinks and food sell better depending on temperature and rainfall/snow
This dashboard enables waiters to understand their sales, number of customers served, and tips
- Sales data: real-world point of sales data (Tiller) of 20 restaurants in Paris over a period of 7 years (2015-2021)
- Weather data: OpenWeatherMap data
- One-off data upload to BigQuery with Python
- Daily data fetching from OpenWeatherMap API and upload to BigQuery with Python
Since this was real world data from restaurants with different semantics, data transformations concerned 3 categories:
- Data cleaning: remove all non-relevant order items (e.g. deposits, promotions),
- Consolidation: unify category types from over 400 to 8 different order categories
- Value creation: selecting only relevant columns and adding columns allowing for valuable insights (e.g. extraction of tips, dinner duration, dine-in vs take-away, mapping of weather to orders)
All data was ingested in the bronze zone, data was then cleaned and stored in the silver layer, before being aggregated to 2 final tables for exposure in the dashboard (restaurant sales and waiter performance).
Docker compose to ensure availability and scalability