Product Experience

Problem Space

Do you love traveling and taking vacations? Do you love exploring local attractions in a new area? So do we. But do you love spending hours researching different routes and rearranging your itinerary a million times to try to find the most optimal route in order to visit every spot you want? 

In 2019, Americans took 2.29 billion domestic trips and spent $972 billion on those trips. The market size of the tourism industry in the U.S is $1.2 trillion in 2023 and expected to increase 4%. The rising popularity of tourism among the general public may be attributed to increased disposable income, the rising influence of social media and new technologies, and a growing sense of curiosity. 

However, once taking a vacation has been decided on, an average of 20-30 hours are spent on planning the trip, with over 25% of people saying that they consider holiday planning to be one of life's biggest stressors. In fact, four in ten people would rather pay extra to avoid researching the vacation, and more than a third said they would consider paying a friend to help plan it for them.

Currently, travelers are left by themselves in creating day-to-day schedules and must do extensive research to find the best routes and timings to visit their key activities for an area they’re not familiar with. Existing products all help travelers in being more organized, not more optimized. There is no effective tool to aid travelers in creating a well optimized itinerary based on their planned activities. 

Our Problem Statement: How might we create an optimized itinerary for travelers so that they can plan their key activities stress-free?

Problem Discovery

User Pain Points and Feedback

Pain points were identified after conducting user surveys with 60+ respondents and 8 user interviews. From this research, there are five key pain points users currently experience: 

Users know which activities they want to visit, but don’t plan for when to go to each

  • 91.2% of surveyed users have at least 1-5 activities they plan to go to and 76.5% place high importance on visiting those planned activities. However, 79.4% don’t plan when to visit or in which order.

Users enjoy researching for activities, but don’t enjoy planning out routes

  • In user interviews, every interviewee enjoyed the process of researching which activities they would like to do. However, they all identified that plotting routes for each day was the aspect they disliked the most. 

Users would like to cut down time spent on researching specific locations and business hours 

  • Planning day-to-day logistics is the second-longest task of the process, but users do not plan in detail because users find this task tedious and don’t experience the same joy as researching activities.

Users want a well optimized itinerary, but don’t want to create one themselves

  • 76.4% of surveyed users place high importance on a well optimized itinerary. But only 20% actually create a detailed itinerary where they plan each meal, every activity, and how to get to each spot. This suggests that optimization is important for a pleasant vacation experience, but many don’t plan in that much detail. 

Users want to plan a well optimized itinerary with a group of friends or family and ensure everyone is on the same page

  • 76.5% of surveyed users went on vacation with at least one other person. In user interviews, users revealed that there is usually one main person who researches activities, plans out the itinerary, and coordinates with other group members on their preferences. This process involves a lot of stressful back-and-forth.

This research consisted of leisure travelers who travel at least once per year by themselves or with a group, for at least a weekend. These travelers enjoy researching activities and would want to create a well-optimized itinerary, but are often too stressed and busy to create one. 

Landing on the Solution

The goal of this product is to help travelers route their itinerary by distance. The hypothesis is that if travelers are able to create an optimized itinerary, they will be better organized, less stressed, and overall be able to better enjoy both their vacation and the planning process.

Explanation of the Solution

PlanAway is a website to help travelers plan the most optimal route between each planned activity.

PlanAway’s key features on launch: 

  1. Add vacation activities into an itinerary
  2. Receive suggestions of popular activities, attractions, and restaurants in the local area
  3. Optimize travel routes by arranging activities based on location
  4. Customizing itinerary by dragging and dropping activities to rearrange 
  5. Save itinerary and access on different devices by creating an account

Lofi and Hifi Designs

Link to Lofi Prototype

Link to HiFi Prototype

From our user feedback and input from the team, we implemented the following on the high fidelity design:

1. Added progress bar and breadcrumbs

2. Edited language for clarity

Example: “Recommended for you” → “Suggested in this area” to not mislead that the suggestions are datamined and custom (they are not)

Example: “Optimize” → “Optimize My Itinerary” so users know what is being optimized on the next screen

3. Added a save itinerary feature to let users know when the process is “done”

4. Designed breakpoints for tablet and mobile so users can save their itinerary and view on different devices while traveling

Implementation Details

PlanAway, a responsive web application, relies on external APIs from Google Map API to get map details of the originating location of a user, the stopovers, and the routes. We used Travel Advisor from Rapid API to fetch restaurants and attractive places of visit surrounding the users' originating location. We created an algorithm to split these activities/places created or selected by the user into the number of days for their visits based on distances.

Where is it hosted? 

PlanAway Frontend is on Netlify at this link, and the backend is on Render. We built the app with React, a JavaScript framework, and used Redux for state management. The idea is to use Redux to host all stateful information from users, and this information is sent to the backend if the user wishes to save the itinerary.

What is your tech stack?

On the Frontend, we used TypeScript, React library, and Material UI to build out the UX/UI while adhering to a design pattern provided by the Product Designer. On the backend, we used Mongoose to build out our backend schema, ExpressJS on NodeJS to build out an internal API for our app, and MongoDB to store all the data when the user saves the itinerary while using the app. Some other technologies we used were JSON Web Tokens to authenticate and authorize users to access activities and Bcrypt to hash users' passwords in our MongoDB.

High-level journey of using the app

When the users launch the application on the browser, they are to input the address or the name of the location they would be staying and how long they intend for the visits. This information is sent to the Redux Store once the user clicks the "ADD ACTIVITIES" button. The suggested restaurants and attractive places are fetched from the travel advisor API using the longitude and the latitude of the user's provided location. The users launch to the page where they either select places/activities from the suggestions or create new ones they wish to visit by just typing out the name or address. They can add many places/activities as they want. 

On clicking the "Optimize my Itinerary" button, the users launch to the page where they can visualize these activities. On this page, the activities are arranged in days based on their distances with the help of Google Map API and planned according to the number of days using our algorithm. They would have the opportunity to rearrange these activities based on their preferences by dragging and dropping them to their preferred day. They can also create a new activity and drag and drop it to any chosen day. Once the users are satisfied with the planned activities, they can click the "SAVE MY ITINERARY" button to send them to the backend application. The user can therefore access this application from another device and in the future time.

Current Design

Future Steps

Future iteration levels may include the following features:

  1. Further customizations on itinerary structure: time slots for each day (i.e Morning, Afternoon, Evening)
  2. More nuance on timing: taking into consideration peak hours, average amount of time spent at each activity, time taken to reach each location
  3. Further details on routing: options of selecting method of transportation (i.e transit, drive, walk)
  4. Sharing with others: allowing many users to view and edit the same itinerary

Future Revenue streams

  1. Sponsored content
  2. Affiliate links for hotels, flights
  3. Direct booking links for attraction tickets
  4. Packaged trip deals such as walking tours, eating tours, wine tours

Learnings

Product Manager Learnings:

Cindy Wang

  1. Prioritizing user needs while balancing technical capabilities
  2. Working in an agile environment

Designer Learnings:

Samantha Lednick

  1. I learned how to work in an agile environment where all of the team and pieces are in action at the same time
  2. I also learned a lot from my teammates such as time management and keeping up on deadlines by working with my PM, and what APIs are capable of from my developers.

Designer Learnings:

Jo Sturdivant

  1. Adapting to an Established Team: Joining the team in week 6 of 8 was challenging, as I had to quickly adapt to existing workflows, dynamics, and goals. This mirrors real-world situations where you often integrate into teams mid-project, and flexibility is essential.
  2. Work-Blocking for Efficiency: With only two weeks to complete the project, I learned the importance of a structured work-blocking system. This approach allowed me to manage my time effectively and meet deadlines under pressure.
  3. Making Data-Driven Design Decisions: Unlike my past projects, I had to rely on research conducted by others. This was a valuable experience in using pre-existing data to guide design decisions, helping me focus on the core insights without starting from scratch.

Developer Learnings:

Dozie Udeagha

I have learned to work to tight deadlines and follow projects from ideation, user research, and product design to implementation and development while collaborating with the product manager, designer, and the other developer in delivering the expected MVP in a SCRUM/Agile environment. I also learned the importance of clear communication as we evolved our product based on valuable insights from our research. On the technical side, I have learned to integrate Google Map API, use Material UI for responsive application styling aligning with the design on Figma, and use of TyperScript while building with React Framework.

Developer Learnings:

Vanady Beard

&

As the back-end developer, I learned how important it is to create efficient and reliable systems that support the entire application. This experience also taught me the importance of optimising the database and ensuring the backend is scalable and easy to maintain.

Developer Learnings:

Stephen Asiedu

&

As a back-end developer, I've come to understand the importance of being familiar with various database systems and modules. This knowledge enables me to build diverse applications and maintain versatility in my work. I've also learned that the responsibility for making the right choices rests on my shoulders, guided by my best judgement.

Developer Learnings:

Emmanuel Braboke

&

Developer Learnings:

Maurquise Williams

&

  1. Process of Creating an MVP: Developing a Minimum Viable Product (MVP) taught me how to focus on delivering core functionalities balancing between essential features and avoiding scope creep.
  2. Collaboration in a Real-World Tech Setting: This experience taught me how to collaborate efficiently in a fast-paced tech environment, keeping the team aligned and productive, even while working remotely across time zones.
  3. Sharpening Critical Thinking and Problem-Solving Skills: This experience honed my ability to think critically and solve problems efficiently. By tackling challenges and finding quick solutions, I sharpened my decision-making and troubleshooting skills in a dynamic, real-world setting.

Developer Learnings:

Jeremiah Williams

&

All in all this experience was very awesome I learned that in coding with others being transparent is key

Developers Learnings:

Justin Farley

&

I learned how important communication is when working with a team. Communication provides understanding, advice, ideas, and much more. While working with the product team, I’ve found that communication keeps everything flowing smoothly. Working with a team also showed me that every member brings something different to the table and we all have to work together in order to align and meet our end goal.

Full Team Learning

  1. Open communication in a cross functional team
  2. Seeing a product go from ideation to design to development using an agile framework
  3. Understanding what is possible by learning new skills and from each other