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.
- 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
- Get a Gemini API key from Google AI Studio
- Get an ElevenLabs API key from ElevenLabs
- Create a
.env.localfile 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_hereFirst, install dependencies:
npm install
# or
yarn install
# or
pnpm installThen, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
- Upload a syllabus PDF by dragging and dropping it onto the upload area or clicking "Choose Syllabus PDF"
- Click "Extract Syllabus Data" to analyze the document
- View the structured extraction with assignments, exams, and projects
- Copy the JSON data to import into your calendar app
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
POST /api/process-pdf- Processes uploaded syllabus PDFs and returns structured JSON data
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
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.