A web application that processes Google Calendars to generate optimized study groups using scheduling algorithms and graph matching techniques for intelligent filtering.

This project was designed to help students find compatible study partners and schedule group sessions efficiently. The application leverages the Google Calendar API to access users' schedules and identifies optimal meeting times based on availability and user-defined constraints.
The core of the project is a scheduling algorithm that I developed to intelligently match students. It considers not only free time slots but also factors in preferences for study duration, frequency, and subject matter. The backend is built with Python and Flask, with a PostgreSQL database to store user information and group data.
The goal of this phase was to establish a clean, organized development environment to ensure a stable foundation for rapid and collaborative work. This involved setting up a project board, defining a strict Git workflow, creating the Supabase project, and building a shell for the frontend with placeholder pages.
The first major goal was to allow a single user to sign up, log in, and manage their own events (CRUD operations). This phase focused on implementing authentication and securing the database with Row-Level Security (RLS) to ensure users could only access their own data.

This phase introduced collaboration by allowing users to share events. The database schema was updated to include private events and a 'cancelable' rating. RLS policies were modified to handle shared events, and the UI was updated to allow inviting other users and setting the new event properties.
Here, the AI component was introduced. A Supabase Edge Function was created to suggest study times based on due dates and the 'cancelable' factor of existing events. The UI was built to allow users to input their deadlines and see the AI-generated study plan.

The final phase focused on matching users into effective study groups. This involved adding user preferences to the database and creating a more complex matching algorithm in a Supabase Edge Function. The UI was built for users to set their preferences and browse potential study groups.