Skip to content

About

AI-powered tool that turns pasted syllabus text into structured deadlines and exports them as calendar-ready .ics files.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

πŸ“š Syllabus Simplify

Turn any course syllabus into a fully-scheduled academic calendar β€” in seconds.

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.

Next.js TypeScript Supabase Tailwind CSS Mistral AI

Vercel Deploy License: MIT GitHub Stars GitHub Issues

πŸš€ Live Demo Β β€’Β  πŸ“¦ Repository Β β€’Β  πŸ› Report Bug Β β€’Β  ✨ Request Feature


πŸ“– Table of Contents


🎯 About The Project

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:

  1. Sending that raw text to an AI model for analysis
  2. Using AI to identify and structure every date-bound academic event
  3. Storing that data securely, scoped to your account
  4. Exporting it as a standard .ics file you can drop straight into Google Calendar, Apple Calendar, or Outlook

No manual data entry. No missed deadlines.


✨ Core Features

πŸ“ Paste-and-Go Text Input

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.

πŸ€– AI-Powered Extraction

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.

πŸ“… One-Click Calendar Export

Instantly generate a standards-compliant .ics / iCalendar file from extracted events, ready to import into any calendar app on any platform.

πŸ”’ Secure Multi-Tenant Data Isolation

Built on Supabase Row Level Security (RLS), ensuring every user's syllabi and extracted data remain fully isolated and private at the database level.


πŸ›  Tech Stack

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

πŸ”„ Architecture & Workflow

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


πŸš€ Getting Started

Follow these steps to run Syllabus Simplify locally.

Prerequisites

Make sure you have the following installed and ready:

  • Node.js v18.x or later
  • npm, pnpm, or yarn
  • A Supabase account and project (free tier works)
  • A Mistral AI API key

Installation

  1. Clone the repository

    git clone https://github.com/kumaranlenin/Syllabus-Simplify.git
    cd Syllabus-Simplify
  2. Install dependencies

    npm install
    # or
    pnpm install

Environment Variables

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.local to version control. Ensure it's listed in your .gitignore.

Running Locally

npm run dev

The 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 codebase

πŸ“‚ Project Structure

Click 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

πŸ—Ί Roadmap

Planned enhancements for future releases:

  • πŸ”— Google Calendar OAuth Integration β€” direct one-click sync instead of manual .ics import
  • πŸ“š 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 β†’


🀝 Contributing

Contributions are what make the open-source community amazing. Any contributions you make are greatly appreciated.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

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.

πŸ‘€ Author & Contact

Kumaran Lenin

⭐ If this project helped you, consider giving it a star!

About

AI-powered tool that turns pasted syllabus text into structured deadlines and exports them as calendar-ready .ics files.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages