Skip to content

mk1316/HackUTA-2025

Repository files navigation

Syllabus Extractor

A Next.js application that automatically extracts assignments, exams, projects, and important dates from syllabus PDFs using Google's Gemini AI. Perfect for importing academic deadlines into your calendar app.

Features

  • Drag and drop syllabus PDF upload
  • AI-powered extraction of academic deadlines and events
  • Structured JSON output with assignments, exams, and projects
  • NEW: Humorous audio summaries using ElevenLabs text-to-speech
  • Real-time processing status with visual feedback
  • Clean, responsive UI with dark mode support
  • Automatic date formatting (YYYY-MM-DD) for calendar integration
  • Audio playback controls with play/pause functionality

Getting Started

Prerequisites

  1. Get a Gemini API key from Google AI Studio
  2. Get an ElevenLabs API key from ElevenLabs
  3. Create a .env.local file in the root directory with your API keys:
GEMINI_API_KEY=your_gemini_api_key_here
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here
ELEVENLABS_VOICE_ID=your_preferred_voice_id_here

Installation

First, install dependencies:

npm install
# or
yarn install
# or
pnpm install

Then, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

Usage

  1. Upload a syllabus PDF by dragging and dropping it onto the upload area or clicking "Choose Syllabus PDF"
  2. Click "Extract Syllabus Data" to analyze the document
  3. View the structured extraction with assignments, exams, and projects
  4. Copy the JSON data to import into your calendar app

Extracted Data Structure

The application extracts the following information:

  • Course Details: Name, code, professor info, office hours
  • Assignments: Title, due date, description
  • Exams: Type (Midterm/Final/Quiz), date, description
  • Projects: Title, due date, description
  • Class Schedule: Meeting times and locations

API Endpoints

  • POST /api/process-pdf - Processes uploaded syllabus PDFs and returns structured JSON data

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •