Skip to content

MahalakshmiPFW/Syllabus-to-Calendar-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SyllabusSync - A Syllabus to Calendar App

A modern web application that automatically converts course syllabi into organized calendar tasks using AI-powered parsing. Upload your syllabus and instantly get assignments, readings, and exams organized in both calendar and list views, with optional Google Calendar synchronization.

πŸš€ Features

  • AI-Powered Extraction: Uses Google Gemini 2.0 Flash to intelligently extract tasks from both text and PDF files
  • Multi-Format Support: Full AI integration for both text (.txt) and PDF (.pdf) files
  • Smart Date Detection: Automatically identifies semester/term (Fall, Spring, Summer) and assigns correct years and months
  • Intelligent Classification: Automatically categorizes assignments, readings, exams, and other tasks
  • Dual Views: Switch between calendar and list views
  • Google Calendar Sync: Optional integration with Google Calendar
  • Responsive Design: Works seamlessly on desktop and mobile devices
  • Modern UI: Clean, educational-focused design with accessibility features

πŸ› οΈ Tech Stack

  • Frontend: Next.js 15, React 19, TypeScript
  • Backend: Node.js runtime with Next.js API routes
  • AI Integration: Google Gemini 2.0 Flash API for syllabus parsing
  • Styling: Tailwind CSS v4, shadcn/ui components
  • Calendar Integration: Google Calendar API (simulated)

πŸ“‹ Prerequisites

  • Node.js 18+
  • npm or yarn package manager
  • Google Gemini API key (free from Google AI Studio)

πŸ”§ Installation

1. Clone the repository

git clone <repository-url>
cd Syllabus-to-Calendar-App

2. Install dependencies

npm install
# or
yarn install

3. Set up environment variables

Create a .env.local file in the root directory:

GOOGLE_API_KEY=your_google_api_key_here

4. Run the development server

npm run dev
# or
yarn dev

5. Open your browser

Navigate to http://localhost:3000

πŸ—οΈ Building for Production

npm run build
npm start

πŸ“ File Support

Text Files (.txt)

  • βœ… Full AI Integration: Uses Google Gemini for intelligent parsing and task extraction
  • βœ… Real Data: Actual syllabus content is processed and converted to calendar tasks
  • βœ… Smart Classification: AI categorizes and extracts meaningful information

PDF Files (.pdf)

  • βœ… Full AI Integration: Direct PDF-to-AI processing using Gemini's native PDF support
  • βœ… Real Data: Extracts actual text and dates from PDF syllabi
  • βœ… Semester-Aware: Automatically detects academic term (Fall/Spring/Summer) and assigns correct dates

πŸ“– Usage

  1. Upload Syllabus

    • Drag and drop or click to upload text or PDF files
    • Supports both formats with full AI processing
  2. AI Processing

    • Text files: Direct text extraction and AI analysis
    • PDF files: Native PDF reading with AI-powered event extraction
  3. View Tasks

    • Switch between calendar view and list view to see your schedule
    • Events are automatically categorized and dated correctly
  4. Sync Calendar

    • Optionally connect to Google Calendar for cross-device synchronization

🧠 Approach

AI-Powered Processing

The application uses Google Gemini 2.0 Flash for intelligent syllabus parsing:

  • Multi-Format Support: Processes both text and PDF files natively
  • Semester Detection: Identifies academic term (Fall 2024, Spring 2025, etc.) from document headers
  • Smart Date Mapping:
    • Fall semester: August to December
    • Spring semester: January to May
    • Summer semester: June to August
  • Context-Aware Extraction: Understands syllabus structure and extracts relevant dates
  • Intelligent Classification: Categorizes events as assignments, exams, readings, or other activities

File Processing Pipeline

  1. File Upload: Multi-format support with drag-and-drop interface
  2. Processing:
    • Text Files: Direct text extraction and AI analysis
    • PDF Files: Base64 encoding and direct PDF processing via Gemini API
  3. AI Analysis:
    • Step 1: Identify semester and year from document
    • Step 2: Determine appropriate date range for the semester
    • Step 3: Extract events with contextually accurate dates
    • Step 4: Format output as structured JSON
  4. Data Transformation: Convert AI response to application task format with timezone correction
  5. Error Handling: Graceful fallbacks and user-friendly error messages

Task Classification

AI-powered categorization identifies:

  • Assignments: homework, projects, papers, essays, reports
  • Readings: textbook chapters, articles, research papers
  • Exams: tests, quizzes, midterms, finals, assessments
  • Other: miscellaneous course activities and deadlines

User Experience

  • Progressive Enhancement: Works without JavaScript for basic functionality
  • Responsive Design: Mobile-first approach with desktop enhancements
  • Accessibility: ARIA labels, keyboard navigation, screen reader support
  • Real-time Feedback: Progress indicators during AI processing
  • Accurate Dates: Timezone-aware date handling ensures correct display

πŸ”‘ Environment Variables

The application requires the following environment variable:

Variable Description
GOOGLE_API_KEY Your Google Gemini API key

Add this to your .env.local file or configure it in your deployment platform (Vercel, etc.).

🚧 Future Enhancements

  • PDF Text Extraction: Add fallback PDF parsing for scanned documents
  • Multiple AI Models: Support for different LLMs (Claude, OpenAI, etc.)
  • Batch Processing: Handle multiple syllabi simultaneously
  • Custom Prompts: Allow users to customize AI parsing instructions
  • Multiple Calendar Support: Add support for Outlook, Apple Calendar
  • Collaboration Features: Share schedules with classmates
  • Mobile App: React Native version for mobile devices
  • Notification System: Reminders for upcoming deadlines
  • Task Management: Edit, delete, and mark tasks as complete

🀝 Contributing

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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“Š Submission Information

This project was created for evaluation based on the following criteria:

Judging Criteria

  • Creativity: AI-powered syllabus parsing with semester-aware date detection and intelligent task categorization
  • Code Quality: Clean TypeScript implementation with proper error handling, timezone management, and comprehensive documentation
  • Usability and Design: Responsive, accessible interface with dual calendar/list views and real-time AI processing
  • Impact: Streamlines academic workflow by automating syllabus organization with accurate date extraction

Key Innovations

  • Native PDF Processing: Direct PDF-to-AI pipeline using Gemini's native PDF support, eliminating need for intermediate parsing
  • Semester-Aware Dating: Automatically detects academic term and assigns dates within appropriate timeframe
  • Context Understanding: AI reads document structure to extract accurate years, months, and event details
  • Smart Classification: Automatically categorizes assignments, readings, and exams with context awareness
  • Dual Interface: Provides both visual calendar and filterable list views
  • Progressive Enhancement: Graceful fallbacks and comprehensive error handling

Made with ❀️ for students everywhere

About

A Syllabus to Calendar App that converts course syllabi into organized calendar tasks using AI-powered parsing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors