Inspiration
Our inspiration was how we personally, along with countless other university students, struggle with maximizing both our academics and personal lives. The most common way that students try to maximize these two facets of their lives is to create a schedule with Google Calendar, or something similar. However, Google Calendar is very static, which is not representative of life. Our idea was to make a dynamic calendar that can adapt to life, which is inherently dynamic.
What it does
ReFlo streamlines the approach to scheduling, allowing users to effortlessly organize their time while adapting to unexpected changes. Unlike traditional calendar apps, ReFlo uses an AI powered assistant, Flo, to create a personalized schedule based on the user's preferences.
ReFlo can: Manage events: Add/remove/modify through natural conversations with Flo Reschedule tasks: Will automatically find a new space to complete the task if the task is taking longer than the estimated time, or when an unexpected commitment arises. Prioritize deadlines and weights: Will push tasks due soon and/or with a significant grade weight to be completed sooner Personalization: Users can select their own preferences, such as sleeping hours, max/min working blocks, etc.
How we built it
We started off by brainstorming ideas for the project. This process took a while because we wanted to select the best idea for the requirements. After we finalized the idea, we discussed how we would work together on the project to maximize our efficiency, since none of us had ever done anything like this before. We then started by creating the setup files for the backend and frontend, and once that was done, two of us started working on the backend and two of us started working on the frontend. Once we got a working demo of the project, we looked through it together and noted down bugs that needed to be fixed, features that should be added, and ways to make it look better. Once we approached the end, we started mainly focusing on bug fixes and UI improvements/fixes instead of adding new features, because we wanted to get as smooth of an initial experience as possible without overextending.
Challenges we ran into
One challenge we ran into was integrating our workflow together as a team. At the beginning, we struggled to divide the work up because we didn’t know how to start the project and use each others’ work without breaking our own.
Another challenge we ran into was learning technologies we hadn’t worked with before while building a working product within a tight deadline. Given that this was our first hackathon, many of us were not highly experienced and had varying skillsets. Connecting the frontend, backend and adding new features such as connecting an AI assistant all required experimentation and debugging.
Lastly, we also had to make ReFlo generate realistic schedules based on several parameters including balancing deadlines, fixed commitments, sleep schedule and study preferences. Rescheduling skipped or unfinished work also became a tricky problem we needed to solve, since we needed to preserve previous progress while finding time for the remaining tasks. To address this, we conducted many tests across various scenarios, which helped us spot scheduling issues as well as ui issues.
Accomplishments that we're proud of
We are proud that we were able to work as a team, since it was all of ours’ first time creating something like this with other people. For example, we were able to properly communicate our ideas with one another which is what led to the idea for this project. Once we started to get more familiar with the process, our efficiency increased and so did our teamwork abilities.
What we learned
We learned why development is often done in teams in professional environments, because it is the most effective to have multiple people thinking and working together. Being in a team makes the process more motivating and entertaining, increasing the efficiency and success rate of the project.
What's next for ReFlo
Two things we’d like to implement next would be making a mobile app for ReFlo and creating user logins/profiles to track their productivity each day/week.
Built With
- cs
- fastapi
- fullcalendar
- javascript
- next.js
- pydantic
- python
- react
- typescript
- uvicorn