Sri Lanka Trip Advisor – Interactive Tour Guide Web Application


Team

eNumber Name Email
eXXXXXXX Student Name student@email.com
eXXXXXXX Student Name student@email.com
eXXXXXXX Student Name student@email.com

Table of Contents

  1. Introduction
  2. Solution Architecture
  3. Software Designs
  4. Testing
  5. Conclusion
  6. Links

1. Introduction

1.1 Project Overview

Sri Lanka Trip Advisor is a web-based trip planning system designed to help tourists plan personalized travel experiences within Sri Lanka. The application allows users to enter their travel preferences such as:

Based on these inputs, the system generates a day-by-day travel itinerary, provides estimated travel costs, and recommends nearby attractions.

The platform also allows users to:

The project focuses on Sri Lanka tourism, covering 25 districts with curated attraction data.


1.2 Real World Problem

Planning trips in Sri Lanka is often inefficient and confusing, especially for first-time visitors.

Tourists usually search across many sources such as:

This creates several problems:

As a result, tourists spend excessive time planning their trips and may still end up with poorly organized travel schedules.


1.3 Proposed Solution

Our solution is a centralized travel planning web application that simplifies the entire trip planning process.

The system:

The itinerary generation uses a deterministic rule-based algorithm rather than AI to ensure predictable and consistent results.


1.4 Impact

The solution provides several benefits.

For Tourists

For Tourism Industry

For Users


2. Solution Architecture

2.1 High Level Architecture Diagram

+----------------------+
|      End User        |
|  Tourist / Traveler  |
+----------+-----------+
           |
           v
+-------------------------------+
| React Frontend (Vite)         |
| - Home Page                   |
| - Login / Signup              |
| - Trip Planner                |
| - Districts / Attractions     |
| - Nearby Attractions          |
| - Saved Trips                 |
+---------------+---------------+
                |
                v
+---------------------------------------------+
| Firebase Services                           |
| - Firebase Authentication                   |
| - Firestore Database                        |
+----------------+----------------------------+
                 |
     +-----------+-----------+
     |                       |
     v                       v
+------------+       +----------------------+
| Firestore  |       | Browser APIs         |
| - users    |       | - Geolocation        |
| - districts|       +----------------------+
| - attractions
| - trips    |
+------------+
                 |
                 v
        +----------------------+
        | Google Maps Embed    |
        | + Maps external link |
        +----------------------+

2.2 Architecture Description

Presentation Layer

The frontend is developed using React with Vite. It provides the user interface for:


Application Logic Layer

Core application logic includes:


Backend Service Layer

Firebase provides backend services including:

Collections include:


External Services

Google Maps embeds are used to display attraction locations without requiring an API key.


Device APIs

The Nearby Attractions feature uses browser geolocation to determine the user’s location and calculate distances to nearby attractions.


3. Software Designs

3.1 Design Goals

The system was designed with the following objectives:


3.2 Technology Stack

Technology Purpose
React Frontend framework
Vite Development server & build tool
Firebase Authentication User login system
Firestore NoSQL cloud database
Tailwind CSS Responsive UI styling
Google Maps Embed Attraction location visualization

3.3 Functional Modules

3.3.1 Authentication Module

Handles:


3.3.2 Trip Planner Module

This is the core module of the system.

Inputs

Processing

Outputs


3.3.3 District Browsing Module

Users can browse:

Each district contains 5 attractions.


3.3.4 Attraction Details Module

Displays:


3.3.5 Nearby Attractions Module

Process:

  1. User allows location access
  2. System obtains latitude and longitude
  3. Distance is calculated using Haversine formula
  4. Nearest attractions are displayed

3.3.6 Saved Trips Module

Users can:


3.4 Data Design

Firestore database contains the following collections.

users

Stores authenticated user information.

districts

Stores district metadata.

attractions

Stores attraction information including:

trips

Stores user generated itineraries and preferences.


3.5 Routing Structure

/
/login
/signup
/plan
/trips
/trips/:id
/districts
/districts/:districtId
/attractions/:attractionId
/nearby
/profile

3.6 User Interface Design

UI design focuses on:

Key UI components include:


3.7 Security Design

Security is implemented using Firebase rules.


4. Testing

4.1 Testing Strategy

Testing focused on:


4.2 Unit Testing

Itinerary Generation

Verified:

Example: A 3-day normal pace trip generates 4 stops per day (12 stops total).


Budget Estimation

Tested budget calculation rules including:

Results matched expected calculations.


Distance Calculation

Haversine distance calculations were verified using known coordinates.


4.3 Integration Testing

Tested interactions between:


4.4 UI Testing

Tested on:

Ensured layouts remain responsive and functional.


4.5 Sample Test Cases

Test ID Feature Input Expected Output Result
T01 Signup valid email/password account created Pass
T02 Google Login Google account user logged in Pass
T03 Trip Planner 2 days itinerary generated Pass
T04 Budget Estimate mid budget correct cost Pass
T05 Nearby geolocation enabled nearby attractions Pass

4.6 Summary of Results

Testing confirmed that:


5. Conclusion

5.1 Achievements

The project successfully implemented:


5.2 Future Developments

Possible future improvements include:


5.3 Commercialization Plans

The platform could evolve into a commercial tourism service through:


6. Links

GitHub Repository

https://github.com/your-repo

Live Deployment

https://your-netlify-site.netlify.app

Project Documentation

link to full report