We were frustrated at modern trip planning tools and how complex it was to plan for a vacation. The motivation behind taking a vacation is to relax and get away from work, yet the intricate planning required defeats the purpose. Additionally, there is often pressure to visit as many attractions as possible, and much effort is put into determining the most optimal ordering of attraction.

What it does

QTime is a website that takes in start/end times and position of a trip and automatically generates the most optimal path to partake in activities based on user-indicated interest. Once a path is generated by a user, he is given a unique key which he may use to retrieve the path in the future. QTime also has a built-in share function where the user may share the path with other people via email.

How we built it

We built the entirety of the backend using Node.js. Firebase was used as the database system to store and generate unique keys for paths. For the front end, we used vanilla HTML and CSS.

Challenges we ran into

I suck at javascript. I cant count parentheses. I dont know how to use APIs. I need sleep. What I am doing here. I have midterms. Send help or money thanks.
We run into a bunch of issues

  • Asynchronous function calls are very confusing (very different from what we are used to). Learning how to use Promises, async, and await to get the program to do what we want.
  • Organizing CSS and HTML front end

Accomplishments that we're proud of

  • Successfully implementing Google Maps API, routing, and selection features
  • Learning how to develop frontend webpage (HTML, CSS, and Vanilla Javascript)
  • Attempting to solve the Traveling Salesman problem (an NP-Hard problem) to optimize itineraries.
  • Successfully calling and working around asynchronous service calls (Yelp and Google apis)

What we learned

-Teamwork -How to use APIs -Building websites

What's next for QTime

-Update more informations and APIs for the web, so the users can have more options to choose as their field of interest. -Come up better algorithm to lower the runtime. -Maintain and Update the website to add more features.

Share this project: