You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A real-world data pipeline that fetches real-time train departure data from the iRail API, normalises it, and stores it in a SQL database using Microsoft Azure. The visualisation is done using cloud-native dashboard that provides insights into train operations in Belgium. This project demonstrates a complete cloud-native data solution with progressive complexity levels.
Project Structure
The project is structured in three progressive levels:
🟢 Must-Have: Core functionality - fetch and store data via Azure Portal using Azure Functions and Azure SQL Database
🟡 Nice-to-Have: Add automation (scheduling), build a live dashboard (Power BI), and enable data refresh
🔴 Hardcore Level: Full DevOps integration - CI/CD pipelines, Azure CLI, Docker deployment, and infrastructure as code
Technologies & Tools Used
Core Azure Services
Service
Purpose
Azure Function App (Python 3.11)
Serverless data ingestion logic
Azure SQL Database
Storage for normalised train data
Azure Storage Account
Dependency for Function App
App Service Plan (Consumption)
Hosts Functions with autoscaling
Data Processing & Storage
Tool/Technology
Purpose
Python 3.11
Primary programming language for Azure Functions
pandas
JSON normalization and data manipulation
iRail API
Source of real-time Belgian train data from the following endpoints: /liveboard, /connections
Azure SQL Database
Structured data storage with proper SQL data types
Automation & Monitoring
Tool/Service
Purpose
HTTP Trigger Functions
HTTP-triggered Azure Functions for on-demand data retrieval
Timer Trigger Functions
Scheduled data fetching (hourly intervals)
Application Insights
Runtime metrics and delay tracking
Azure Portal
Infrastructure management and deployment
Advanced DevOps (Hardcore Level)
Tool/Service
Purpose
GitHub Actions / Azure DevOps
CI/CD pipeline automation
Terraform
Infrastructure as Code (IaC)
Azure CLI
Script-based resource management
Docker
Containerisation for Functions
Azure Container Registry
Container image storage
Managed Identities
Secure authentication without hardcoded secrets
Data Visualization
Tool/Service
Purpose
Power BI Service
Live dashboard showing train routes, connections, platform information, and train types
# Azure Function App SettingsDB_CONNECTION_STRING="your_sql_connection_string"IRAIL_API_BASE_URL="https://api.irail.be"FUNCTION_NAME="train-data-ingestion"