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
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
- 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.