Skip to content
BACK TO WORK
Full-Stack · Platform003 / 04
ENGINEERING CASE STUDY

Car-Rent

A full-stack rental platform covering vehicle discovery, booking, reviews, payments, and secure authentication, with REST APIs and relational data modeling.

FOCUSFull-stack platform · secure auth · relational modeling
CATEGORYFull-Stack · Platform
STATUSProduction Live
YEAR2025–2026
Car-Rent Interface Preview
01 · OVERVIEW & PROBLEMCONTEXT

Car-Rent is a full-stack rental platform. Users discover vehicles, place bookings, leave reviews, and pay securely. The system uses Next.js on the front, NestJS on the back, Prisma ORM for relational modeling, and JWT + OAuth for authentication.

CORE CHALLENGE

Rental platforms combine a lot of moving parts — search, scheduling, payments, reviews, and auth — and small leaks in any one of them break the whole experience. The challenge was to model this cleanly and keep the API contract dependable.

02 · ARCHITECTURE & PIPELINEENGINEERING

Split the system into a typed Next.js front-end, a NestJS REST API, and a Prisma-managed relational schema. Use JWT for session auth, OAuth for federated login, and strict request/response DTOs everywhere so the front and back never drift.

EXECUTION MODEL

Next.js + React (front) · NestJS REST API · Prisma ORM · relational database · JWT auth · OAuth provider. Clean separation of discovery, booking, review, and payment domains.

03 · KEY CAPABILITIESFEATURES
Vehicle discovery with filters
Booking timeline with availability checks
Secure JWT and OAuth authentication
Review and rating system
Payment integration
REST API with strict DTOs
Relational data modeling via Prisma ORM
04 · TRADE-OFFS & HURDLES

Technical Challenges

Booking availability under concurrent writes was the hardest correctness problem. Adding a database-level constraint on overlapping bookings removed a class of race conditions that application logic alone couldn't fully prevent.

05 · TAKEAWAYS

Engineering Learnings

Push invariants into the schema wherever possible. Code that prevents double-bookings is fragile; a unique constraint is not.