MBAS Travel Planner

Overview

The MBAS Travel Planner is a program that generates a customized travel package for users based on personal constraints such as destination, travel dates, maximum flight cost, and maximum hotel price. The system outputs a complete travel summary, including flights, lodging, weather, and suggested attractions.


While technically driven, this project emphasizes human-centered system design by translating user inputs into clear, actionable travel information that reduces planning effort and decision overload.

The Problem

Planning travel—especially on a budget—requires users to navigate multiple platforms, compare prices, interpret weather conditions, and research destinations. This process is time-consuming and cognitively demanding, particularly for users who want quick, constraint-based recommendations.

Key challenges include:

  • Fragmented travel information across multiple sites

  • Difficulty comparing options within a budget

  • Lack of consolidated, personalized travel summaries

Users often spend significant time searching without confidence that their choices meet all their constraints.

Design Challenge

How might we design a system that generates a complete, personalized travel plan based on user-defined constraints, while minimizing effort and decision fatigue?

System Design & Approach

The MBAS Travel Planner uses a constraint-based input model to guide the system’s output. Users specify:

  • Destination country and city

  • Travel dates

  • Maximum flight price

  • Maximum hotel price

The system then aggregates relevant data into a single travel package, rather than forcing users to manually compare options across platforms.

Core Features

Custom travel package generation based on user inputs

  • Flight details (outbound and return, including layovers)

  • Hotel recommendations within budget constraints

  • Weather information for the destination during travel dates

  • Suggested attractions and events based on destination

All outputs are presented in a structured, readable format to support quick comprehension.

Technical Implementation

The project was implemented in Python and supports two modes of interaction:

Command-Line Interface

Users can run the program locally and input travel constraints directly into the terminal. The system processes these inputs and outputs a complete travel package summary.

Web Application

Using Flask, the project was extended into a web-based interface, allowing users to input information through form fields and receive their travel package on a new results page.

Key technical components include:

  • API integration with Google Flights and Google Hotels via SerpAPI

  • Web scraping using BeautifulSoup to collect supplementary travel data

  • Backend logic to filter results based on user-defined constraints

Human-Centered Considerations

Reducing cognitive load by consolidating outputs into one summary

  • Respecting user constraints rather than maximizing options

  • Presenting information in a predictable, structured format

  • Supporting different user preferences through CLI and web interfaces

The goal was to make complex data feel manageable and useful, rather than overwhelming.

Reflection

This project strengthened my understanding of how backend systems and APIs directly shape user experience. Even without a highly visual interface, decisions about data structure, filtering logic, and output formatting significantly impact usability.

What I Learned

  • Constraint-based systems can meaningfully reduce decision fatigue

  • Backend architecture plays a critical role in UX outcomes

  • Human-centered thinking applies just as much to systems design as to interface design

Hey, I'm Madison Hueston ⋆˙⟡♡

I am a student UI/UX Designer, Photographer and Editor.

I am probably making something right now.