Back to Projects

Serandib

Role:Full-Stack Developer, Business Analyst & UI/UX Designer — University Project
Stack:Laravel 11PHPMySQL/SQLiteBlade TemplatesTailwind CSS
Source Code
Serandib Preview
01

Problem Statement

The Kandy district in Sri Lanka is a prime tourist destination known for its cultural heritage and natural landscapes. However, tourists planning short, one-day trips face difficulties optimizing their time and budget due to scattered, outdated, or incomplete information online.

User Pain Points

  • Practical details like exact travel times between locations are missing.
  • Current entrance fees, parking availability, and dress codes are disorganized.
  • Visitors waste time in transit and encounter unexpected hidden costs.

Project Goals

  • Consolidate up-to-date practical info for 10+ key locations in Kandy.
  • Calculate and display reliable estimated travel times between attractions.
  • Generate clear, actionable daily itineraries summing up total estimated time and costs.
02

User Research

To ensure the platform addressed real needs, I conducted stakeholder interviews via student forums and distilled findings into actionable requirements. The research revealed a strong need for accurate pricing, distinct travel times, and flexible pre-made packages; these were prioritized into an MVP scope.

"The Practical Planner"

Focuses on budget and time efficiency

"I choose a place if I can get there and back comfortably. I hate when blogs show 'empty' sites but don't warn you about the 2-hour queue or midday heat."

Needs: Visibility of total estimated cost, two-way travel time, parking availability.

"The Travel Consultant"

Advises others on realistic itineraries

"I need an app that highlights the 'Travel-to-Site Ratio'. If a place requires 4 hours of driving for 1 hour of fun, it ruins the day plan."

Needs: Accurate up-to-date info, transparency of hidden costs (lockers/guides), dress codes.
03

Architecture & Development

The application was built using a robust Model-View-Controller (MVC) architecture with Laravel 11, ensuring a clean separation between the database logic and user interface.

ER Diagram
Entity Relationship
Use Case Diagram
Use Case Analysis
Sequence Diagram
System Sequence
Class Diagram
Class Architecture
  • Relational Database: Designed an ER schema using MySQL/SQLite to map Destinations, Categories, and User Itineraries efficiently.
  • Blade Templating: Utilized Laravel's Blade engine combined with Tailwind CSS to craft a responsive, lightweight frontend interface.
  • Iterative Planning: Followed a structured development lifecycle utilizing Gantt charts, Use Case diagrams, and Statecharts for precise execution.
04

Key Features

Thematic Day-Visit Packages

Offers pre-configured, thematic packages (e.g., Cultural, Nature & Wildlife, Museums) for users who prefer ready-made plans. Users can select a package as a foundation and easily swap out one or two stops to fit their preferences.

Serandib Thematic Packages

Custom Itinerary Generator

The core engine of Serandib allows users to manually select Kandy attractions (like the Temple of the Sacred Tooth Relic or Udawatta Kele). The system compiles the choices, factors in standard dwell times and travel durations, and outputs a cohesive day plan.

Serandib Itinerary Planner
05

Testing & Quality Assurance

Reliability was key for an itinerary planner where users depend on accurate timing. I adopted a rigorous manual testing approach to validate the core logic.

Validation Approach

  • Logic Verification: Manually tested the custom itinerary generator against edge cases (e.g., selecting locations physically impossible to visit in one day).
  • UI/UX Testing: Conducted cross-device manual testing to ensure the Blade templates and Tailwind CSS were fully responsive.
  • Database Integrity: Verified relational data integrity for Destinations and Categories during CRUD operations.

Process Flow Analysis

Before writing code, I mapped out the entire user journey. The itinerary generation flow follows a strict process:

User Selects Attractions → Engine Validates Dwell Times → Calculates Two-Way Travel → Checks Constraints (Daylight Hours) → Outputs Cohesive Plan.

Manual TestingProcess Flow Analysis
06

Reflection

What I Learned

Building Serandib addressed a highly specific yet common pain point: the stress of organizing an efficient, single-day local trip amidst a sea of fragmented information.

Key Takeaways: This project deepened my understanding of the MVC design pattern, database normalization, and requirements engineering. Early BA activities (stakeholder interviews, problem framing, and prioritization) shifted the product focus toward pragmatic details (like the "Travel-to-Site Ratio") rather than just showcasing attractions.

Next Project: SF. Portfolio

Next Project

SF. Portfolio