Background
Vehicle users in Vietnam currently have to rely on multiple separate channels: one app to find and purchase vehicles, another to locate garages and services, another to find charging stations, and manual communication through Zalo or phone calls for needs such as roadside assistance or driver rental.
CheapCar was built to solve this fragmentation by bringing the entire vehicle ownership and usage journey into a single platform — supporting both B2C models (showrooms, dealerships, and garages) and C2C models (individual vehicle buyers and sellers).
Work Completed
System Architecture
The platform architecture was designed and built on Domain-Driven Design (DDD) and Clean Architecture principles, clearly separating four core business domains: Marketplace (vehicle buying and selling), Services (vehicle services), Charging (EV charging stations), and Chatbot (currently under development).
Backend Development
The backend was built using NestJS (REST + GraphQL) with PostgreSQL, using Knex.js for migrations and query building. The stack integrates Keycloak for authentication and authorization, Redis for caching and rate limiting, and Redpanda (Kafka) for event-driven communication between modules.
Frontend Development
The frontend was built using Next.js 16 and React 19, optimizing SSR/SSG for loading performance and SEO — a critical factor for a marketplace platform that depends heavily on organic traffic.
Infrastructure and DevOps
A Docker Compose infrastructure was set up across three separate environments (dev, staging, and production), with CI/CD pipelines through GitLab and dedicated monitoring tools for each infrastructure layer, including PGAdmin, Redis Insight, and Kafka UI.
Implementation Roadmap
A sequential four-phase implementation roadmap was developed — platform foundation → core business functions → feature expansion → large-scale operations — ensuring that new features are only introduced once the platform meets defined stability criteria.
Results
- Completed the platform architecture with 27 database migrations, fully supporting four core functional areas: vehicle buying and selling, service booking (7 service types), charging station maps, and an internal token wallet.
- Built a clearly modularized system that allows each business domain to be expanded independently — for example, adding features to "Vehicle Services" without affecting the "Marketplace" domain.
- Established the technical foundation (Phase 0) to support the expansion of advanced features in subsequent phases, including Fleet Tracking, AI Chatbot, internal ERP, and multilingual support.
Keywords: CheapCar platform, vehicle ownership platform, Domain-Driven Design architecture, Clean Architecture, NestJS backend, Next.js marketplace, event-driven architecture, EV charging station map, vehicle marketplace Vietnam, microservices vehicle platform






