Syllabus Simplify uses AI to automatically extract deadlines, exams, and assignments from syllabus text and converts them into ready-to-import calendar events. Just paste your syllabus text in β no file uploads, no manual parsing setup.
π Live Demo Β β’Β π¦ Repository Β β’Β π Report Bug Β β’Β β¨ Request Feature
- About The Project
- Core Features
- Tech Stack
- Architecture & Workflow
- Getting Started
- Project Structure
- Roadmap
- Contributing
- License
- Author & Contact
Every semester, students receive dense, unstructured PDF syllabi packed with critical dates β exams, assignment due dates, project milestones β buried in paragraphs of text. Manually transcribing these into a calendar is tedious and error-prone.
Syllabus Simplify solves this by letting you paste your syllabus text directly into a text box and automatically:
- Sending that raw text to an AI model for analysis
- Using AI to identify and structure every date-bound academic event
- Storing that data securely, scoped to your account
- Exporting it as a standard
.icsfile you can drop straight into Google Calendar, Apple Calendar, or Outlook
No manual data entry. No missed deadlines.
|
No file uploads or parsing pipelines required β simply paste your syllabus text into the app's text box and let the AI take it from there. |
Leverages the Mistral AI API combined with Zod schema validation to reliably extract structured JSON β exam dates, assignment deadlines, and event titles β with type-safe guarantees on every response. |
|
Instantly generate a standards-compliant |
Built on Supabase Row Level Security (RLS), ensuring every user's syllabi and extracted data remain fully isolated and private at the database level. |
Click to expand full technology breakdown
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js (React) | Server-rendered, performant UI framework |
| Frontend | TypeScript | Type-safe application logic end-to-end |
| Frontend | Tailwind CSS | Utility-first styling |
| Frontend | shadcn/ui | Accessible, composable UI component library |
| Backend / API | Next.js API Routes / Server Actions | Handles text submission and AI extraction requests |
| Database | Supabase (PostgreSQL) | Persistent storage for users, syllabi, and extracted events |
| Auth & Security | Supabase Auth + Row Level Security (RLS) | User authentication and per-user data isolation |
| AI / ML | Mistral AI API | Natural language understanding for deadline/event extraction |
| AI / ML | Zod | Runtime schema validation of AI-generated structured output |
| Calendar Export | ICS / iCalendar generation | Produces .ics files compatible with all major calendar apps |
| DevOps / Hosting | Vercel | CI/CD and production deployment |
Here's how a syllabus travels from pasted text to a synced calendar event:
ββββββββββββββββββββββββββββ
β 1. Text Input β User pastes their syllabus text directly
β β into the app's text box (no file upload)
βββββββββββ¬ββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββ
β 2. AI Extraction (Mistral API) β The pasted text is sent to Mistral AI,
β β prompted to identify dates, exams,
β β assignments, and deadlines
βββββββββββ¬βββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββ
β 3. Schema Validation (Zod) β AI's JSON response is validated
β β against a strict Zod schema to
β β guarantee type-safe, clean data
βββββββββββ¬βββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββ
β 4. Database Storage (Supabase) β Validated events are persisted in
β β PostgreSQL, scoped to the user via
β β Row Level Security policies
βββββββββββ¬βββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββ
β 5. Calendar Export (.ics) β User triggers export; events are
β β serialized into a standards-compliant
β β iCalendar file for download
ββββββββββββββββββββββββββββββββββββ
In short: Pasted Text β AI Extraction β Validated JSON β Database β .ics Export
Follow these steps to run Syllabus Simplify locally.
Make sure you have the following installed and ready:
- Node.js
v18.xor later - npm, pnpm, or yarn
- A Supabase account and project (free tier works)
- A Mistral AI API key
-
Clone the repository
git clone https://github.com/kumaranlenin/Syllabus-Simplify.git cd Syllabus-Simplify -
Install dependencies
npm install # or pnpm install
Create a .env.local file in the project root and populate it with your own keys:
# ββ Supabase ββββββββββββββββββββββββββββββββββββββββββββββ
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_public_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# ββ AI / Mistral ββββββββββββββββββββββββββββββββββββββββββ
MISTRAL_API_KEY=your_mistral_api_key
# ββ JWT Secret (Used to sign/verify server-side tokens) ββββββββββββββββββββββββββββββββββββββββββββ
JWT_SECRET=your_generated_random_string_here
β οΈ Never commit.env.localto version control. Ensure it's listed in your.gitignore.
npm run devThe app will be available at http://localhost:3000.
Other useful scripts
npm run build # Create a production build
npm run start # Run the production build locally
npm run lint # Lint the codebaseClick to expand a high-level directory overview
Syllabus-Simplify/
βββ app/ # Next.js app router pages & API routes
βββ components/ # Reusable React + shadcn/ui components
βββ lib/ # Supabase client, Mistral client, ICS generator, utils
βββ schemas/ # Zod schemas for AI-extracted structured data
βββ public/ # Static assets
βββ styles/ # Tailwind/global styles
βββ .env.local # Local environment variables (not committed)
βββ package.json
Planned enhancements for future releases:
- π Google Calendar OAuth Integration β direct one-click sync instead of manual
.icsimport - π Multi-file Bulk Processing β upload and process an entire semester's syllabi at once
- π Direct LMS Integration β native connectors for Canvas, Brightspace, and Moodle
- π± Mobile-optimized PWA experience
- π Smart reminders & notification support
Have an idea? Open a feature request β
Contributions are what make the open-source community amazing. Any contributions you make are greatly appreciated.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
MIT License
Copyright (c) 2026 Kumaran Lenin Vijayalakshmi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files, to deal in the Software
without restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, subject to the inclusion of the above copyright notice in all
copies or substantial portions of the Software.
Kumaran Lenin
- GitHub: @kumaranlenin
- Project Link: Syllabus Simplify
- Live App: syllabus-simplify.vercel.app