
No Car No Problem — Ride-sharing platform
Full ride-sharing app with customer/driver/admin/support roles, real-time chat, geospatial ride matching, and driver verification workflow.
About this project
Built by a 9-person team over three Agile sprints. The system is a full transportation platform with four user roles: customers book rides, drivers accept and fulfil them, admins verify driver applications, and support staff handle tickets. The backend uses Prisma with PostgreSQL PostGIS so pickup/destination/driver_location are stored as native point types and queried geographically. The trickiest part was the ride state machine — every ride moves through on_the_way → arrived → picked_up → completed with an end_reason (completed / customer_canceled / driver_canceled / no_show), and the driver lifecycle is a separate three-state machine (waiting → verified or rejected) with admin attribution stored on every transition.
- Four-role inheritance modelled in Prisma (customer / driver / admin / support all FK to user)
- PostGIS point columns for pickup, destination, driver_location — geo queries handled natively
- Socket.IO chat keyed per ride, plus support ticket system tied to specific rides
- MapLibre GL on the frontend, Chart.js dashboards, Playwright E2E tests
Key features
Four roles
Customer / driver / admin / support
Geospatial rides
PostGIS point storage + lookup
Per-ride chat
Socket.IO room per ride
Ride lifecycle
on_the_way → arrived → picked_up → completed
Screenshots
User profile
Selecting location
Driver accepting a passenger
Support Ticket
Tech stack
Other projects

Event Reservation Platform
Full-stack event booking app with JWT + Google OAuth login, SCB Sandbox QR payment, and Resend email confirmation.

Inventory Management (Frontend)
Frontend for a stock-request system with admin/staff roles, product CRUD, and approve/deny workflow. Backend provided by course.