An advanced data platform built with .NET Aspire, featuring a Medallion Architecture pipeline, Semantic Search with Vector Databases, and a Text-to-SQL Chatbot using local LLMs.
Note
Language Note: The UI is currently in Persian (RTL), but the data engine processes English datasets. Full English LTR support is easily configurable and planned for future updates.
The project leverages .NET Aspire to orchestrate a distributed environment without the complexity of manual configuration.
- Medallion Pipeline: Automated data flow from Bronze (Raw) → Silver (Cleaned) → Gold (Analytics) using Hangfire background jobs.
- Semantic Search: Vector embeddings generated via Ollama (all-minilm) and stored in Qdrant.
- AI Chatbot: Text-to-SQL engine powered by DeepSeek-Coder 6.7b to query the
uber-dbdirectly using natural language.
/Analyze: Exploratory Data Analysis (EDA). Includesanalyze.ipynbandeda_charts.png./IndexEffect: Performance benchmarking showing SQL execution plans before and after indexing./Model: OllamaModelfilefor the customuber-sql-helperLLM./UberApp:frontend: Vite + React + Tailwind CSS dashboard.UberApi: .NET 10 Backend (Dapper, Hangfire, Qdrant Client).AppHost: Aspire Orchestrator (Api backend, Postgres and uber-db, Qdrant, Vite frontend).
| Component | Technology |
|---|---|
| Orchestrator | .NET Aspire |
| Backend | .NET 10, Dapper, Hangfire, Scalar UI |
| Frontend | React, Vite, Tailwind CSS |
| Databases | PostgreSQL (Relational), Qdrant (Vector) |
| AI Models | DeepSeek-Coder 6.7b (SQL), all-minilm (Embeddings) |
Real-time monitoring of 4 KPIs (Total Bookings, Success Rate, Revenue, Avg Rating) and 3 dynamic charts:
- Cancellation Distribution (Pie Chart).
- Vehicle Performance (Bar Chart: Counts with Ratings).
- Ride Traffic (Area Chart: Hourly trends with Min/Max/Avg stats).
Upload raw CSV datasets and watch the 3-stage transformation:
- Bronze: Raw data ingestion.
- Silver: Cleaning, trimming, and
COALESCEhandling. - Gold: Final business-ready views.
- Managed by Hangfire with retry logic and history tracking.
Manage ride records and search by "meaning" rather than keywords.
- Automatically syncs Postgres to Qdrant every 2 minutes.
- Uses Cosine Similarity to find related cancellation reasons.
Natural language interface for complex SQL queries.
- Local LLM generates SQL → Backend validates/executes → Frontend renders results.
- Ollama installed and running.
- .NET 10 SDK & Docker Desktop.
ollama pull all-minilm
ollama pull deepseek-coder:6.7b
# Create the custom model using the Modelfile in /Model
ollama create uber-sql-helper -f ./Model/Modelfile
Open UberApp.slnx and run the AppHost project. Aspire will automatically:
- Spin up Postgres (with PgAdmin).
- Spin up Qdrant.
- Launch the Backend (Scalar UI at
/scalar). - Launch the Frontend (Proxied via Vite to the API).
