Skip to content

Repository files navigation

Syllavil

Syllavil is a syllabus-to-study-plan tool. Paste in a syllabus (or upload a PDF/image), and it uses Gemini to extract every graded assignment, then ranks them by a custom urgency score so you always know what to focus on next.

How it works

  1. Upload — Paste raw syllabus text or upload a PDF/image on the /upload page.
  2. Parsegemini_parser.py sends the syllabus to Gemini, which returns structured JSON: course name, and every assignment with its due date, grade weight, and type (homework/quiz/exam/project).
  3. Scorescoring.py ranks assignments by urgency: grade weight, days remaining, and how far your current estimated grade is from your target grade (if set), plus a per-course priority boost.
  4. Dashboard/dashboard shows assignments sorted by priority score, with a one-click "mark as done" per item.

Stack

  • Backend: Flask, Flask-SQLAlchemy (SQLite), Flask-WTF
  • AI: Google Gemini API (gemini-3-flash-preview) for syllabus parsing
  • Calendar: Google Calendar API via OAuth (google-auth-oauthlib)
  • Frontend: Jinja2 templates, Bootstrap 5

Setup

pip install -r requirements.txt

You'll need:

  • A .env file with GEMINI_API_KEY=your_key_here
  • A credentials.json from Google Cloud Console (OAuth client for the Calendar API) in the project root

Then run:

python app.py

Data model

  • Course — name, professor, syllabus text, a per-course priority boost
  • Assignment — belongs to a course; title, due date, grade weight, type, completion status, and the linked Google Calendar event ID once exported
  • Goal — optional target grade / current estimated grade per course, used to weight priority scoring

In progress

The core upload → parse → score → dashboard flow works end-to-end. Two features are scaffolded but not working yet:

  • AI study tutor chat — A chat widget backed by Gemini function-calling (can answer questions about your courses and, in theory, schedule study sessions on your calendar). Currently broken/incomplete.
  • Google Calendar export — One-click push of assignments to Google Calendar as events with reminders. OAuth flow and event creation are written but not fully working yet.

Next steps

  • Get the chatbot fully working end-to-end
  • Get calendar export fully working end-to-end
  • Clean up error handling around syllabus parsing (malformed Gemini responses)

About

AI-powered study tool that parses course syllabi, builds a calendar, and provides an interactive tutor/chat for coursework. Built with Flask, Gemini API, and Google Calendar integration.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages