Skip to content

Repository files navigation

UniSync

Transform university course schedules into beautiful, recurring calendar events with one upload.

UniSync is a full-stack web application that allows students to upload their university schedule, automatically parse classes, visualize their semester, compare schedule revisions, and synchronize recurring events with Google Calendar.


Features

Schedule Upload

  • Upload university schedule PDFs
  • Automatic class extraction
  • Supports recurring weekly schedules
  • Stores multiple schedule versions

Calendar Sync

  • Google Calendar integration
  • One-click recurring event creation
  • Intelligent updates (no duplicate events)
  • Remove synced events anytime
  • Apple Calendar (.ics) export

Schedule Management

  • Interactive weekly calendar
  • Upload history
  • Semester version comparison
  • Detect added, removed, and modified classes

Dashboard

  • Meeting statistics
  • Course statistics
  • Earliest and latest classes
  • Busiest day of the week
  • Schedule overview

Screenshots

Dashboard

Screenshot 2026-07-17 at 6 38 10 PM

Weekly Calendar

Screenshot 2026-07-17 at 6 38 25 PM

Schedule Comparison

Uploading Screenshot 2026-07-17 at 6.38.44 PM.png…


Tech Stack

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Clerk Authentication
  • Axios

Backend

  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Google Calendar API

Other

  • Google OAuth 2.0
  • iCalendar (.ics)
  • PDF Schedule Parsing

Architecture

University PDF
        │
        ▼
 PDF Parser
        │
        ▼
 Structured Schedule
        │
        ├────────► PostgreSQL
        │
        ├────────► Weekly Calendar
        │
        ├────────► Schedule Comparison
        │
        ▼
 Google Calendar Sync

Current Functionality

  • PDF upload
  • Persistent schedules
  • Multiple semester versions
  • Version comparison
  • Google Calendar synchronization
  • Google Calendar event removal
  • Apple Calendar export
  • Weekly calendar visualization

Planned Features

  • Calendar selection before syncing
  • Last sync timestamp
  • Rich schedule comparison UI
  • Dark/Light themes
  • Mobile responsiveness
  • Multi-calendar support
  • Semester sharing
  • Automatic schedule conflict detection
  • Exam schedule support

Installation

Backend

cd backend

python -m venv venv

source venv/bin/activate

pip install -r requirements.txt

uvicorn app.main:app --reload

Frontend

cd frontend

npm install

npm run dev

Environment Variables

DATABASE_URL=

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=

License

MIT

About

A full-stack web application that converts university course schedules into interactive calendars with Google Calendar sync, version history, and semester comparison.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages