Inspiration
We’ve consistently told ourselves and the people around us that we plan to start new hobbies, work on assignments earlier, and make our days more productive. But with heavy course-loads and numerous obligations, many of these claims have remained simply a claim. While scheduling out our weeks seems like the ideal solution, finding time to structure our days is consuming, and it can often feel demoralizing to fall behind. This inspired us to consider a tool able to automatically generate efficient schedules that took into consideration our cumulative tasks, working speed, devotion, and task urgency. It would also be able to re-generate schedules for any tasks that a person is unable to accomplish that day, so that the work that needs to be done gets done, and space for the things that we want to do is still found. That is what Planit is - a web application that allows individuals to provide details about a task they wish to accomplish and generate a schedule based on those requirements.
What It Does
The core of Planit lies in two core functionalities, adding and viewing tasks. Adding Tasks: This was accomplished through the use of a form on the homepage, accessible through the Add Task button. New tasks are sent as prompts to Google’s Gemini API, which returns for the user a set of subtasks (if necessary) visualized in a calendar format. Users can specify a task name, whether it is an ongoing (i.e. has a deadline) or one-time event, and include any additional details they wish to be sent to Gemini. This can include how much of the task they’ve already accomplished, how fast they work, what experience they’ve had previously with the task, and the goal of the task. Viewing Tasks: Tasks can be viewed in the Calendar page, which on opening displays a list of existing tasks to finish. The calendar displays the weekly schedule of a user and upon clicking on a specific event, the task associated and any other events scheduled for that task appear on the side in the form of a list.
How It Was Implemented
Planit’s frontend was implemented mainly in JasaScript and Node.js. For schedule generation, we used Google’s Gemini API to modify any existing schedule to fit newly given tasks. The backend was mainly developed in ExpressJS using Snowflake for the database, in which we store three tables for schedules of each user, the tasks in each schedule, and all subtasks/events of a larger task.
What We Learned
We are very proud of our chance to expand our knowledge and skills in the realm of Node.js, Javascript, HTML, and CSS. While we’va had prior experience, being able to hone in on and develop those skills was very rewarding. As well, the APIs for Snowflake and Gemini had learning curves that we can now say we’ve overcome, as we learned to integrate, streamline, and develop with these tools.
Built With
- express.js
- gemini
- react
- snowflake


Log in or sign up for Devpost to join the conversation.