Back to Portfolio
Selected Work

Project Title

Serendib GO
Full-Stack Travel Management Platform

Overview

Serendib GO is a comprehensive full-stack travel management platform tailored for the Sri Lankan tourism ecosystem. It empowers tourists, guides, vehicle owners, and hotel managers to seamlessly list, book, review, and manage local travel experiences. By centralizing bookings, payments, and role-based dashboards, it simplifies trip planning and vendor management.

The Problem It Solves

Planning a comprehensive trip often forces tourists to use fragmented systems for hotels, transport, and guides. For tourism operators, managing these independent bookings is equally chaotic. Serendib GO unifies these services into a single marketplace, providing distinct, secure portals for every stakeholder—from tourists booking a complete package to vehicle owners tracking their regional operations.

Main Mockup

Serendib GO Dashboard Preview

UI Element

Tech Stack

Built With a Modern Stack

Frontend

React 18 Vite Tailwind CSS DaisyUI Framer Motion React Query React Router

Backend

Node.js Express Puppeteer Nodemailer JWT

Database & Cloud

MongoDB Mongoose ODM Cloudinary Vercel Stripe API

Key Features

Key Features & Core Functionalities

Multi-Role Ecosystem

Dedicated, secure flows for Tourists, Guides, Drivers, Vehicle Owners, Hotel Owners, Staff, and Admins to manage their respective functions.

Geospatial Vehicle Marketplace

Advanced vehicle search based on location and date availability, calculating real-world distances to connect tourists with nearby drivers.

Integrated Bookings & Payments

End-to-end booking capabilities for tours, hotels, and vehicles with secure Stripe payment processing and automated refund handling.

Trust & Moderation

A robust review system enforcing uniqueness constraints (one review per booking/guide) with helpful metrics, verified flags, and admin moderation tools.

Automated Exports & Notifications

Features Puppeteer-driven automated PDF generation for reports/tickets, alongside real-time notifications via Socket.IO to keep all parties updated.

Architecture & Challenges

Engineering Decisions & Tradeoffs

Engineering Decisions

Geospatial Availability & Search

To make the vehicle marketplace efficient, I utilized Mongoose's 2dsphere indexing. This allowed the implementation of instance methods to calculate distances and determine availability windows dynamically, keeping complex location-based queries optimized and database-friendly.

Multi-Role Security & Stateful Auth

Managing permissions across seven different user roles required a highly robust auth architecture. I implemented a secure JWT issuance system combined with password reset, email verification flows, pre-save hashing, and changedPasswordAfter logic to enforce strict access control across the platform.

Payment & Operational Reliability

Integrating Stripe (with webhooks) alongside Cloudinary for media and Puppeteer for PDF generation required careful orchestration. I built in idempotency, webhook verification, and explicit request-size limits to mitigate operational failures and handle large media/file streams safely under production load.