This repository holds two separate data projects built during the internship, both running on the same Databricks workspace but solving different problems.
A natural language analytics dashboard for NYC taxi trip data. A user asks a question in plain English, an AI agent writes the SQL, runs it against a Databricks warehouse, and returns a chart with a short explanation. Full details, including the system design diagram, are in agentic-dashboard-files/agentic-dashboard.md.
A flight tracking pipeline built on Databricks. It polls the OpenSky Network API on a schedule, ingests raw aircraft state data, and works it through a medallion architecture (bronze, silver, gold) into a set of aggregated tables covering aircraft activity, country level statistics, alerts, and emergency squawks. Full details are in flight-analytics-files/flight-analytics.md.
Both projects follow the same bronze, silver, gold pattern on the data side, but they differ in how data gets in. The taxi project loads a fixed historical dataset. The flight tracking project keeps pulling new data on a timer.
.
├── agentic-dashboard-files/ Next.js app, see agentic-dashboard.md for full detail
│ └── agentic-dashboard.md
└── flight-analytics.md
cd agentic-dashboard-filesnpm install- Copy
.env.exampleto.env.localand fill in real values:GOOGLE_GENERATIVE_AI_API_KEYfrom Google AI StudioDATABRICKS_HOST,DATABRICKS_TOKEN,DATABRICKS_WAREHOUSE_IDfor your Databricks SQL warehouseDATABRICKS_CATALOGandDATABRICKS_SCHEMApointing at the taxi data (taxi_dwandgoldby default)
npm run devto run locally, orvercel --prodto deploy once the same environment variables are also set in the Vercel project settings
See agentic-dashboard-files/agentic-dashboard.md for the full architecture, guardrails, and known limitations.
This project runs inside Databricks as a scheduled job rather than as a deployed web app.
- Import the notebooks into your Databricks workspace
- Create a job with tasks in order: fetch new data from OpenSky, write to bronze, clean into silver, aggregate into gold
- Set the job trigger to run on an interval if you want it to keep collecting live data, or run it manually for a one off pull
- Point each notebook at your own catalog and schema names if they differ from
flight_tracking
This section is a starting outline. Fill in the exact notebook names, parameters, and any credentials this project needs, since those details live in the project itself.
- A Databricks workspace with a running SQL warehouse
- Node.js 18 or later, for agentic-dashboard-files only
- A Google AI Studio API key, for agentic-dashboard-files only
See LICENSE for terms.