project-proposal-2025

Odyssey

Abstract

Logo Banner

Traveling can be mind-blowing, but planning for it? Brain-breaking. There’s enough to think about with destinations, flights and activities on your mind, to also have to worry about budgets and visas. Instead, entrust your travel planning to Odyssey, a travel companion platform for personal and group travel. Odyssey takes the hassle out of your preparation by providing a single solution to book your flights and accommodation, as well as handle your itinerary and logistics for you.

Odyssey is a cloud-based web application, so you can access it on any device, wherever you need to. Create a trip and share it with your travel companions, for a collaborative experience. Settle debts with the application’s expense and debt tracker, and keep tabs on your overall budget. Truly everything you need to plan your next trip is in Odyssey.

Author

Name: Benjamin Schenk

Student number: 46406598

Functionality

To describe the functionality of the application, let’s run through how a new user would use the application. A user begins by registering an account, and providing some personal details to help tailor the experience to them.

Next, they can create their first trip, by providing a starting destination (usually a city). From there, they can either enter their trip details or use Odyssey’s search functionality to find accommodation and flights. They can add and remove cities, add other transport, and add activities (or use our friendly AI assistant to find the top spots to check out).

The budget tool allows users to either upload receipts or input their expenses, and then mark as paid or mark as upcoming. These expenses can be set as personal or, in the case of a group, split between the group travelers.

Potential Design Inspiration

Scope

Trips

Odyssey will have a trip planning view that stores information about their flights, accommodation and hotel bookings, their logistics (ie visas, permits, etc), and notes. It also has a budget and expense tracker.

Users of the application will be able to search for flights and accommodation with criteria such as price ranges, dates, and type or seat class. This can be implemented by using a crawler or a public API to find real-time (or close to) data and display it for users to interact with.

AI Assistant

Users of the application will be able to use an AI Assistant to provide guidance on what to do in a particular city or region. This can be implemented by integrating an AI model via an API.

Group Travel

Users of the application will be able to share their trips with tripmates, and provide either view or edit permissions over the trip details. This will require a version control or live update system to ensure consistency and no conflicts.

Quality Attributes

Reliability

The application will be reliable in the sense that data will be synced and kept to up to date across platforms and users. For example, if a user makes changes on one platform and attempts to view it on another, the changes should be available. Secondly, for group trips, if multiple people access the trip at the same time, there should be no issues regarding conflicting changes or changes not being saved (ie data loss).

Scalability

The application will be scalable to allow for peaks and troughs of load. User traffic will most certainly vary, and therefore the application must be able to scale to handle this. In particular, some features such as searching are quite database intensive and therefore the application must be able to scale to handle

Availability

To application will be available in the sense that uptime will be maximized and errors and faults will be kept to a minimum. It will also be important to ensure that the site is incredibly performant, to ensure a positive user experience. Moreover, it is important that bundle size is kept low such to allow for the application to be available in areas with poorer internet connection, such as when traveling the globe.

Evaluation

Prior to the commencement of development, an expectation will be set for each of the quality attributes. For example, a potential spec would be that the app needs to handle 10,000 concurrent users, 3 concurrent editors of the same trip, maintain a response time under 200ms under load, maintain a 99.00% uptime, have all tests pass with a testing suite with full code coverage, and have a bundle size of less than 100Kb per page.

Reliability

The reliability of the application can be tested by running unit and end-to-end tests to ensure the desired functionality is working as expected regardless of time, using technologies such as (if working with JavaScript) Jest or Cypress and Playwright.

Availability

The availability of the application will be tested by recording metrics such as uptime, downtime and error occurrence, to ensure they meet the required threshold. The size of the bundles and load time will also be recorded to ensure global speed and availability.

Scalability

The scalability of the application will be tested by using a framework such as K6. Tests will be run to determine the limits of the system (such as when data loss and errors begin to arise, or when response time exceeds the required threshold).