💡 Inspiration

Sasa was born out of personal frustration. Growing up in Zimbabwe, school schedules were distributed on loose sheets of paper. My dad frequently forgot to pick me up from debate and sports practices because there was no unified, intelligent platform to keep our family synchronized.

As a second-year Computer Science student in Johannesburg, I saw the immense power of Google Vertex AI and MongoDB, and decided to build the solution I always wished my family had. Sasa changes the calendar from a passive grid of boxes into an active, intelligent assistant that protects student schedules and coordinates family logistics automatically in the background.


🚀 What Sasa Does

Sasa is a code-first, autonomous calendar agent that takes complete care of a student's schedule through a natural language interface under active user oversight:

  • Natural Language Orchestration: Parses conversational scheduling inputs instantly and maps them cleanly to database records.
  • Priority-Aware Conflict Resolution: Runs a custom priority conflict resolution algorithm. Flexible events (like workouts) yield to high-priority academic items (like exams) without any overlap.
  • Active Habit Learning: Queries historical behavioral records in MongoDB, combines them with Gemini's reasoning to infer preferred routine times, and schedules them automatically without prompting.
  • Real-Time Analytics: Slides open a dashboard driven by a single high-performance MongoDB $facet aggregation pipeline, calculating peak busy hours, busiest days, and categories in a single round-trip.
  • PDF Timetable Parsing: Upload raw university PDFs. Sasa uses Google Vertex AI parsing backends to extract classes and populate them across your semester.
  • Transit Alerts: Clicking any imported class reveals commute directions and travel time suggestions based on distance.
  • Co-Host Background Sync: Modifying or rescheduling events instantly runs background database and email notification syncs. It alerts co-hosts and participants (like Dad) of the change instantly, ensuring parents always know when to pick up their kids.

🛠️ How We Built It

Sasa's backend is engineered with Python and Flask, deployed as a containerized application to Google Cloud Run via automated GitLab CI/CD pipelines.

  • The Intelligence Layer: Uses Google Vertex AI and Gemini models to orchestrate agentic workflow behavior, extract PDF contents, and process multi-turn conversational intent.
  • The Memory & Database Layer: Driven by a MongoDB Atlas Cluster. Long-term context and semantic event matching utilize Atlas Vector Search paired with Google's text-embedding-004.
  • The Agentic Protocol: Built using the new MongoDB Model Context Protocol (MCP) Server. This allows the Gemini model to autonomously read collection schemas, track history, and query system telemetry without hardcoded API calls.
  • The Workspace Integration: Integrates securely with the Google Calendar API using a fully compliant OAuth 2.0 flow to perform real-world event updates.

🧠 Challenges We Overcame

As a solo developer, configuring the brand-new Model Context Protocol (MCP) server inside a Docker container on Google Cloud Run presented a steep learning curve. Ensuring that the backend parser cleanly handled streaming tool-calls between Vertex AI and the MongoDB MCP server required careful debugging of asynchronous Python routes.

Another massive hurdle was sync worker deadlocks in production, where slow, dense LLM calls blocked health check routes and triggered Cloud Run master container terminations (SIGKILL 9). I successfully resolved this by swapping to a robust, multi-threaded Gunicorn worker topology (--worker-class gthread --threads 8 --timeout 240), assuring high concurrency and non-blocking performance.


🏅 Accomplishments That We're Proud Of

I am incredibly proud to have built a production-ready, highly secure application completely on my own. I successfully replaced all insecure local environment variables with native Google Secret Manager integrations in production.

I also developed a standalone Sandbox Demo Seeding engine and a dedicated Submission Health Check dashboard (/health/submission), giving the hackathon judges an instant, reliable, and verified way to interact with the system without setup friction or credential requirements.


🧠 What I Learned

Through building Sasa as a solo developer, I gained immense technical knowledge across production deployment and modern AI orchestration:

  • The Power of MCP (Model Context Protocol): I learned how to decouple database queries from hardcoded backend endpoints, enabling the Gemini agent to dynamically interrogate collection schemas, inspect records, and execute telemetry commands on the fly.
  • Production-Grade Concurrency: I learned how single-threaded web applications can easily deadlock when handling long-running AI streaming calls. Swapping to Gunicorn's multi-threaded worker class (gthread) taught me how to scale containerized web servers safely.
  • High-Performance MongoDB Aggregations: Mastering the $facet aggregation pipeline opened my eyes to how multiple analytical queries (peak busy hours, weekly category counts, behavioral statistics) can be compressed and returned in a single high-efficiency database round-trip.
  • Zero-Secret Security Posture: I learned how to build and maintain an entirely public open-source repository while keeping keys safe, leveraging Google Cloud Secret Manager to inject production tokens dynamically into Cloud Run.

🔮 What's Next for Sasa

The immediate roadmap for Sasa includes implementing live Twilio API integration to transition the family sync component from simulated inbox notifications into real, physical SMS alerts for parents. I also plan to package Sasa as a native Google Workspace Marketplace add-on, making autonomous calendar management accessible to students worldwide.

Built With

Share this project:

Updates