Inspiration
One day we wanted a better way to organize and classify our tasks, but we noticed that a lot of the ones available online were usually really cumbersome to use requiring a lot of self input from the user which takes a lot of time making us not want to use it. So as we entered the hackathon, we thought of the idea where it is usually easier for the typical person to blurt write all their task in plain text. Comparing to the usual thinking of a name for the task, then inputting the date which if is given as "next week" for example will take more time to enter the right date, and if you want to classify the task further into categories such as whether a task is important or urgent all of which over hundreds of task waste a lot of precious time. Hence, we decided to leverage Gemini's summary skills and ability to read and parse and understand text to quickly do all of that for you!
What it does
TaskGeminator allows user to manually input data, just like any other task trackers, but unlike other task generator, TaskGeminator is also able to take chunks of text, parse through it and extract relevant information such as Due Date, Due Time, and generate a name for the task. Furthermore we decided to implement the Eisenhower Matrix to help us classify the priority of the tasks based on four tags: Important, Not Important, Urgent, and Not Urgent. We can include the importance and urgency in input task, or let gemini help us pick the right tags based on due date, amongst other factors. Then gemini will auto fill the task maker screen with Task Name, Importance, Urgency, Due Date, Due time, and wait for the user to review it, editing Task Name, tags, and Due Date if needed. Once user determine the task is accurate and represents what they described, they can click "add task", and the task will be added to the list under its category, and all displayed together as the homescreen of the app.
How we built it
Current as a Minimum Viable Product the app only compromises of a frontend and a backend.
Frontend
The frontend is a flutter based ios optimized app that implements a basic TODOs app with a https://asana.com/resources/eisenhower-matrix. The logic to organize the tasks in the right positions are encoded directly in flutter, which just uses an ID which is the time the task was created and booleans to sort between the 4 Eisenhower spots.
Backend
The app is connected to a Flask backend, coded in python. Where it receives information from the frontend, such as the chat input, which gets sent to the Gemini API with some prompt engineering ensure we get the right information.
Prompt Engineering
To ensure we have the right outputs and to make Gemini's outputs more accurate we did some prompt engineering to get output as below:
Challenges we ran into
Some challenges that we ran into was handling due dates such as "Tomorrow", "Next Week". Which as Gemini does not have direct access to the date caused issues. But the fix for this was that we added the current data into the prompt which told Gemini the date and allowed it to calculate the dates accordingly
Accomplishments that we're proud of
We are particularly proud of how lightweight and the apps overall ease of use when we were testing it. As this is exactly what we hoped to achieve, a simple lightweight TODO app, to sort tasks, with added benefits like more detailed sorting based of the Eisenhower Matrix all while without over crowding the user with features and information that it gets overwhelming
What we learned
There are 2 main things we learnt in this project, firstly was flutter. As we both are more focused in Data Science and aren't super familiar with Frontend developing, it was fun to learn and use a new framework (flutter) to build an ios app which neither of us have done before.
The other thing was prompt engineering for a task/app, as we normalling ever only thought of that as how to improve answers we ask LLMs. But now we know how to prompt it to ensure the outputs that we want and leverage their capabilities to accomplish amazing tasks.
What's next for Tasks Generator
We plan to use more of the summary capabilities of Gemini, such as summarizing what the task is as a "Task_desciption" which would help the users remember what to do, but also using Gemini's vast knowledge add more to it which could help the user plan how to accomplish the task quicker.
We also want to add another Gen-AI feature which would change the looks of the app such as maybe the icon to something that represents how behind one is in their task. E.g a angry Dog if the person has multiple Urgent and Important task that are due soon, to a Dog enjoying tea if the user has competed all their task, and this would be completely different every single time as we could prompt Gemini (imagen) to create the images.
Log in or sign up for Devpost to join the conversation.