Inspiration
In the midst of a hectic day, it can be quite daunting trying to navigate the most optimal path to complete all your errands efficiently. With an eco-friendly and QuickTastic approach, we designed a program to address this challenge. Our innovative tool takes into account parking occupancy and the quickest routes, providing users with a smarter and greener routine. Plan your day with ease. Plan your day with QuickTasktic!
What it does
Instead of wasting away an entire day running errands, simply enter your list of tasks. QuickTasktic asks if your tasks are time-sensitive or have to be at a specific location, and then it generates an optimized schedule by ranking all the tasks in the most efficient order. On-street, Off-street, FindRoute, and GetRouteTravelTimes APIs are used to create a smart ranking system to ensure minimal time spent finding parking and traveling. It also prioritizes tasks that have to be completed at a specific time. Once sorted, the final schedule is seamlessly integrated with the user's Google Calendar.
How we built it
We utilized HTML, CSS, and JavaScript to create a website that allows users to input up to five different errands, including errand name, time sensitivity, and location if it applies. After sorting the tasks that were entered by the user into an array of dictionaries and converting any time entered as doubles, we used Flask to connect the input from our website to the backend written in Python and APIs such as Google Maps, OpeanAI, the Parking and Routing from Inrix. Leveraging the Inrix APIs, we then ranked the tasks based on parking availability and traveling distance and formatted a schedule: all with Python. We strive to empower users to effortlessly manage their day using the QuickTASKtic Schedule tool.
Challenges we ran into
- Challenge #1 Connecting input data from frontend to backend
We encountered a challenge first with the type of data we want users to input. We decided on having textboxes for words and numbers, and checkboxes for boolean values. We then had a hard time trying to implement the flask and kept getting blocked by CORS error. We eventually figured out to use an async function with a local host IP and to convert data from encoded byte to string and then to a dictionary.
- Challenge #2 Implementing APIs
We needed to keep track of all the API tokens, some of them had authentication and some would expire within hours so we needed to get new ones. We spent a lot of time debugging to make sure our code can actually call the APIs and receive the correct outputs we want. After some practice, we soon got the hang of it.
Accomplishments that we're proud of
- Success #1: Implementing APIs
None of our members have worked with APIs before so although it took a long time to learn how to implement different ones such as INRIX, Google Map, and OpenAI, it was a rewarding experience at the end to have a running product.
- Success #2: Communication & Divide and Conquer
We had active communication within our team and kept an up-to-date to-do list. We divided our team into small subgroups to work on different tasks simultaneously. Each subgroup would have more than two people working on the front end or back end. When we encounter a big issue, we talk as a team to find the best solution.
What we learned
- Connecting frontend inputs to backend using Flask
- Converting encoded byte data to a dictionary
- Writing a frontend website using HTML, CSS, and javascript
- Implement different APIs
- Working 24 hours and still maintaining active communication within our team
What's next for QuickTasktic
- Improve the runtime of the program
- Connect to Google Calendar API so users can sign in and have a GCAL created on their own account
- Find stores close by with the best ratings
Built With
- css
- findroute
- flask
- gettraveltimes
- google-maps
- googlecalenderapi
- html
- inrixapis
- javascript
- on-streetparking
- openaiapi
- python
Log in or sign up for Devpost to join the conversation.