SO — Sherlyn Olalo

Sherlyn Olalo

Car Rental

A rental marketplace built with Django and MySQL. Customers browse and book vehicles with payment; car owners manage listings and view bookings; admins oversee the entire platform.

RoleFull Stack Developer
Year2023
ClientInformation Management Course Project
Stack
Django 5/Python 3.13/MySQL 8/Bootstrap 5
01

The problem.

Car rental marketplaces typically force owners through rigid platforms or lock customers into limited inventory. There was no simple way for individuals to list spare vehicles or for customers to find peer-to-peer rentals with transparent pricing and reviews. Existing solutions were either overcomplicated or lacked the trust mechanisms (reviews, owner profiles) needed for peer-to-peer transactions.

02

What I built.

Car Rental is a two-sided marketplace that empowers both owners and renters. Customers browse available cars with filters, book by date range, pay securely, and leave reviews. Car owners manage their own listings, set discount codes, and track incoming bookings. Admins have full visibility and control via Django's admin panel.

Two-sided marketplace — browse, filter, book, and review across customer and owner roles

The tech stack: Django's ORM and built-in auth handled rapid development. MySQL provided reliable persistence. Server-rendered templates + Bootstrap kept the frontend simple and performant without JavaScript complexity.

Key decisions

Role-based architecture — A single `User` model extended with a `Profile.role` keeps the codebase DRY while supporting distinct customer and owner experiences

Trust through reviews — Post-rental reviews build credibility for both sides, crucial for a peer-to-peer platform

Flexible discount system — Owners can create codes, enabling dynamic pricing without backend changes

03

What I learned.

Building a two-sided marketplace taught me that different user flows need different mental models — what's intuitive for an owner dashboard can confuse a customer. I learned to think about the seams where money changes hands; payment integration is a critical trust point. If I revisited it, I'd add dynamic pricing algorithms for owners, implement real payment processing (Stripe/PayPal), and add notifications to keep both parties in sync during the booking lifecycle.