whatisgithub

What is mini-uber?

aloksingh1st/mini-uber — explained in plain English

Analysis updated 2026-05-18

0TypeScriptAudience · developerComplexity · 4/5Setup · moderate

In one sentence

A learning project simulating Uber-style ride tracking to practice real-time event streaming with Kafka and WebSockets.

Mindmap

mindmap
  root((repo))
    What it does
      Simulates drivers
      Streams via Kafka
      Live map dashboard
    Tech stack
      TypeScript
      Kafka
      Socket.IO
      Leaflet
    Use cases
      Learn event streaming
      Watch live tracking
      Study analytics pipeline
    Audience
      Backend learners
      Distributed systems students

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study a working example of Kafka-based event-driven architecture in TypeScript.

USE CASE 2

Watch simulated drivers move on a live map to understand real-time WebSocket updates.

USE CASE 3

Learn how to compute streaming analytics like average speed and throughput from an event stream.

What is it built with?

TypeScriptNode.jsExpressApache KafkaSocket.IOLeaflet

How does it compare?

aloksingh1st/mini-uber0xradioac7iv/tempfs7vignesh/pgpulse
Stars000
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderatemoderate
Complexity4/53/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a running Apache Kafka instance in addition to npm install.

So what is it?

Mini Uber is a learning project that simulates the backend of a ride-sharing app like Uber, built specifically to explore how real-time streaming systems work rather than to be a usable product. The author states plainly that the goal was hands-on practice with distributed systems, not building something production-ready. At its core, the project simulates multiple drivers moving along real road networks, using the OSRM routing API to generate realistic routes and smoothly interpolating their GPS positions over time. Each simulated driver's location is published as an event to Apache Kafka, a system for handling streams of messages between different parts of an application. Kafka runs in a mode called KRaft, and topics for these location events are created automatically by the code. Two separate services then consume that same stream of driver location events independently. A tracking service forwards live positions to a web dashboard through Socket.IO, a tool for real-time communication between server and browser, where they're displayed on an interactive Leaflet map. An analytics service processes the same events to compute running statistics such as how many drivers are online, their average speed, total distance traveled, and how many messages are flowing through the system per second, then pushes those numbers to the same dashboard. The project is written in TypeScript with Node.js and Express, and the README includes several diagrams showing the event flow and analytics processing pipeline. To run it, you install dependencies with npm and start it with a single dev command. The author describes the project as intentionally complete as is, meant to demonstrate event-driven architecture, Kafka fundamentals, and WebSocket based real-time updates rather than to grow into a full ride-sharing platform.

Copy-paste prompts

Prompt 1
Explain how the Kafka producer and consumer services communicate in this project.
Prompt 2
Walk me through how driver location events flow from the simulator to the dashboard.
Prompt 3
Help me add a new analytics metric to the Analytics Service in this Kafka pipeline.
Prompt 4
Show me how Socket.IO is used here to push real-time updates to the Leaflet map.

Frequently asked questions

What is mini-uber?

A learning project simulating Uber-style ride tracking to practice real-time event streaming with Kafka and WebSockets.

What language is mini-uber written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, Express.

How hard is mini-uber to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is mini-uber for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.