Inspiration

My groupmates and I rarely get to hang out because our academic schedules rarely align, so we created a website to help us plan events more easily. With the help of AI, it guides us through our busy times so we don’t have to sacrifice valuable social interactions, as those small mental breaks help us manage stressful days.

What it does

CalenPal is a smart calendar designed to optimize your peace of mind. It doesn't just take into account your time but also the stress it might cause you. It allows you to upload a class syllabus and automatically inputs your class times, homework due dates, and exam dates into the calendar while assuming how stressful each of these events might be. You can ask it questions like "Would it be a good idea to make plans this day?" or "How bad is my stress gonna be during finals week?" or "Am I stretching myself thin with all these hangouts?". Think of it as your personal Pal to keep life balanced.

How we built it

We used JSON files in the backend to store and manage calendar data. With Flask, we handled displaying events and posting updates. Whenever the AI modified the JSON file, it automatically triggered an add-event action to keep everything up to date on the website we created using HTML, JavaScript, and CSS.

Challenges we ran into

One of our biggest hurdles was scaling the website to handle dynamic scheduling features. We also had to figure out how to build an AI using the Gemini API and connect it to the front end through Flask, which proved to be more complex than expected. Along the way, we encountered persistent JSON issues, where data sent to the frontend kept returning null. The most difficult challenge, however, was integrating the AI with the frontend, as this required creating asynchronous functions that could wait for Gemini’s responses before updating the interface.

Accomplishments that we're proud of

As first-time hackers, we built our first full website and our first non-academic GitHub project, learning how to connect the frontend and backend along the way. Despite running on little sleep, we pushed through and even built the calendar’s code and functionality from scratch, without using extra frameworks or APIs to make the project truly our own.

What we learned

We learned to use Flask for backend routing and AI integration, Git for version control and collaboration, VS Code for efficient development, and how to create and deploy a website from scratch to share it online.

What's next for CalenPal

Next, we plan to add more editing options for events and enable CalPals from different users to communicate, creating a more hands-off scheduling experience. We also aim to implement dynamic sorting of events by stress level and importance, adjusting automatically as the event date approaches for a more accurate representation.

Share this project:

Updates