Projects using ExpressJS in NairobiProjects using ExpressJS in NairobiMetaverse Game is a real-time multiplayer backend powering a 3D virtual world where users join spaces, customize avatars, and interact with each other live. It's fully tested, containerized, and enforces role-based access throughout.
The problem: Multiplayer backends require solving real-time sync, access control, avatar state, and space management all at once. I built this to prove those problems are solvable cleanly — with a proper test suite to back it up.
What I built:
— JWT auth with role-based access control: admins create/delete spaces and elements; users join, move, and interact
— Space management with full CRUD and authorization enforcement
— Avatar creation, metadata storage, and customization with unauthorized deletion blocked at the route level
— WebSocket-powered real-time layer: position updates broadcast to all users in a space, with graceful disconnect
— Zod schema validation on all inputs
— Prisma ORM + PostgreSQL for relational data across users, spaces, avatars, and elements
— Docker containerization — runs anywhere
— Full Jest test suite: 4 suites, 15 tests covering auth, spaces, avatars, and WebSocket edge cases
Impact: 15 tests passing across 4 test suites. Role-based access enforced at route level. WebSocket broadcast confirmed end-to-end in tests. Zero environment setup friction — fully Dockerized.
Stack: Node.js · TypeScript · Express.js · WebSockets · Prisma · PostgreSQL · Zod · Jest · Docker Uber API is a production-ready ride-hailing backend covering the full journey from authentication to ride completion. Users and captains get separate auth flows, real-time location tracking keeps drivers visible on the map, and every ride moves through a verified lifecycle — fare estimate, confirmation, OTP start, and end.
The problem: Most ride-hailing tutorials fake the hard parts. I wanted to build all of them — multi-role auth, real-time location, Maps API integration, and a complete ride lifecycle — end to end, in one clean backend.
What I built:
— JWT + bcrypt authentication for two actor types (users and captains) with role-specific middleware
— Real-time captain location broadcast via Socket.IO (http://Socket.IO)
— Maps API integration: coordinate lookup, distance + ETA calculation, and address autocomplete
— Full ride lifecycle: create request → get fare → captain confirms → OTP-verified start → end ride
— 14 REST endpoints across 4 route groups (/users, /captain, /maps, /rides)
— React (Vite) frontend for interacting with the API
Impact: 14 fully functional endpoints. Two-actor auth system working end-to-end. Real-time location broadcast and OTP-secured ride handoff both verified in production.
Stack: Node.js · Express.js · MongoDB Atlas · Mongoose · JWT · bcrypt · Socket.IO (http://Socket.IO) · Maps API · React