Skip to content

Repository files navigation

📚 SyllabusSync AI

Turn your course syllabus PDF into organized Google Calendar events with AI-powered parsing.

🎯 What is it?

SyllabusSync AI is a web application that automatically extracts important dates, assignments, and events from course syllabus PDFs and syncs them directly to your Google Calendar. Simply upload a PDF, let AI parse the content, review and edit the events, then add them to your calendar with one click.

🛠️ Tech stack

🚀 Getting Started

Prerequisites

  • Node.js 18+ and npm
  • A Google Cloud project with:
    • OAuth 2.0 credentials
    • Google Calendar API enabled
    • Gemini API access

Installation

  1. Clone the repository

    git clone <repository-url>
    cd digital-secretary
  2. Install dependencies

    npm install
  3. Set up environment variables

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

    # NextAuth Configuration
    NEXTAUTH_URL=http://localhost:3000
    NEXTAUTH_SECRET=your-secret-here
    
    # Google OAuth
    GOOGLE_CLIENT_ID=your-google-client-id
    GOOGLE_CLIENT_SECRET=your-google-client-secret
    
    # Gemini API
    GEMINI_API_KEY=your-gemini-api-key

    💡 Generate NEXTAUTH_SECRET with: openssl rand -base64 32

  4. Run the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000

📖 How to Use

  1. Sign in with your Google account (grants calendar access)
  2. Upload a syllabus PDF from the dashboard
  3. Review the parsed events in the table
  4. Edit any events before syncing (optional)
  5. Sync to Google Calendar with one click

🔧 Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm start - Start production server
  • npm run lint - Run ESLint

📝 Project Structure

digital-secretary/
├── app/              # Next.js App Router pages & API routes
├── components/       # React components (UI, auth, dashboard)
├── lib/              # Utilities (auth, PDF processing, caching)
├── validators/       # Zod schemas for validation
└── types/            # TypeScript type definitions

🔒 Security Notes

  • All API keys are server-side only
  • Rate limiting on PDF parsing
  • File size and type validation
  • Caching to prevent duplicate processing

Built for ConUHacks 🚀

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages