Skip to content

arjunmehtaa/SingleStep

Repository files navigation

SingleStep - AI Powered Travel Planner

👥 Group Members (Group #20)

This project was developed as part of the SE2: Software Design and Architecture - CS 446, CS 646, ECE 452 course offered at the University of Waterloo. This is not an individual project, but rather a group effort. Each member has contributed to various aspects of the project development.

Name User ID Student Number
Arjun Mehta a47mehta 20839709
Justin Lu j352lu 20829900
Yichun Shen y275shen 20776079
Chris Tan c46tan 20826300
Vincent Thao Wong vt2wong 20791088
Andy Yu z274yu 20835121

📝 Overview

SingleStep is an AI powered trip-planning app that leverages OPEN AI's GPT3.5-Turbo model to craft personalized day-by-day trip itineraries. It also allows users to seamlessly search for flights, hotels, and nearby tourist attractions.

📚 Libraries Used

  • Glide - Used for loading and caching images for destinations, hotels etc.
  • Retrofit - Used for making API GET requests to fetch hotels and itinerary response
  • RoomDB - Used for storing saved trip itineraries for offline viewing
  • Amadeus Android SDK - Used to fetch airports, flights and local tourist attractions
  • Google Places SDK - Used to fetch city data and autocomplete city names
  • Facebook Shimmer - Used for loading animations throughout the application
  • Jsoup - Used to parse HTML description for tourist attractions into text

🛰️ APIs Used

  • Amadeus API - Used the following endpoints for multiple features:

    • shopping/activities - Used to fetch local tourist attractions
    • shopping/flightOffersSearch - Used to fetch flights for given input trip parameters
    • referenceData/locations/airports - Used to fetch airport IATA codes for given set of coordinates
  • Booking.COM Scraper API - Used the stays/search-by-geo endpoint to fetch hotels for given input trip parameters

  • Google Places API - Used for autocompleting source and destination city name on the Search page

  • OpenAI API GPT3.5 Model - Used for generating day-by-day intinerary for given input trip parameters, selected hotel and flights

🏃 How To Run

To run the backend server, simply attach your OPEN AI API Key in the backend/prompt/inference.py file and run the following command:

python3 .\backend\app.py

Then, ensure that your API keys for Google Places API, Amadeus API, and Booking.com API are configured correctly inside the app/res/values/strings.xml file.

<string name="places_api_key">YOUR_API_KEY_HERE</string>
<string name="amadeus_api_key">YOUR_API_KEY_HERE</string>
<string name="amadeus_api_secret">YOUR_API_SECRET_HERE</string>
<string name="booking_api_key">YOUR_API_KEY_HERE</string>
<string name="booking_api_host">booking-com18.p.rapidapi.com</string>