Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Project Nexus

Intelligent Academic Workflow Automation System

Project Nexus transforms a messy PDF syllabus into a living, breathing study plan. It doesn't just tell you what to studyβ€”it executes your schedule, finds resources, and tracks your mastery in real-time.

🎯 Overview

Project Nexus is a comprehensive academic workflow system that takes syllabus input and creates an intelligent, automated study experience across four phases:

  1. Context Phase - Extract structured data from messy PDFs
  2. Agentic Phase - Automatically schedule and execute study plans
  3. Active Phase - Practice tests and active recall during study
  4. Mastery Phase - 3D visualization of knowledge mastery

✨ Key Features

Context Phase (Ingestion)

  • PDF Parsing: Extracts deadlines, weightages, topics, and required readings from messy PDFs
  • Natural Language Processing: Parse text input like "I want to pass CS101 at UCSB; here is my midterm date"
  • Privacy-First: Uses local LLMs (Ollama) so student data never leaves the machine

Agentic Phase (Orchestration)

  • Google Calendar Sync: Finds "dead air" (gaps between classes/gym/sleep) automatically
  • Task Insertion: Creates specific study blocks with topics and resource links
  • Resource Discovery: Finds relevant YouTube videos, Coursera courses, and EdX modules
  • Auto-Enrollment: Uses Selenium to automatically enroll in mentioned courses (HTML-as-truth navigation)

Active Phase (Socratic Loop)

  • Practice Test Generator: Builds simulated midterms/finals based on your specific syllabus
  • Active Recall Chrome Extension: Interrupts YouTube study sessions with contextual questions
  • Adaptive Questions: Questions generated based on what you're actually watching

Mastery Phase (Visual Flex)

  • 3D Concept Flow Chart: Interactive 3D graph showing knowledge mastery
  • Color-Coded Nodes: Green (mastered), Yellow (learning), Orange (started), Red (untouched)
  • Real-Time Progress Tracking: Update mastery as you learn and see the map evolve

πŸ—οΈ Architecture

Project-Nexus/
β”œβ”€β”€ backend/                 # Flask API server
β”‚   β”œβ”€β”€ context_phase/      # Syllabus parsing and extraction
β”‚   β”œβ”€β”€ agentic_phase/      # Calendar sync, task management, course enrollment
β”‚   β”œβ”€β”€ active_phase/       # Practice test generation
β”‚   β”œβ”€β”€ mastery_phase/      # 3D visualization
β”‚   └── app.py              # Main Flask application
β”œβ”€β”€ frontend/               # React web application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”‚   └── App.js          # Main React app
β”‚   └── package.json
β”œβ”€β”€ chrome-extension/       # Active recall Chrome extension
β”‚   β”œβ”€β”€ manifest.json
β”‚   β”œβ”€β”€ content.js          # YouTube video detection and questions
β”‚   └── popup.html
└── README.md

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • Google Chrome
  • ChromeDriver (for Selenium)
  • Ollama (optional, for local LLM)

Installation

  1. Clone the repository
git clone <repository-url>
cd Project-Nexus
  1. Set up the backend
cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env  # Edit with your API keys
python app.py
  1. Set up the frontend
cd frontend
npm install
npm start
  1. Install Chrome Extension
  • Open Chrome and go to chrome://extensions/
  • Enable "Developer mode"
  • Click "Load unpacked" and select the chrome-extension directory

For detailed setup instructions, see SETUP.md.

πŸ“– Usage

1. Upload Syllabus

Upload a PDF syllabus or type course information. The system will extract:

  • Course information (number, name, institution)
  • Deadlines (exams, assignments, quizzes)
  • Grade breakdown (weightages)
  • Topics and required readings

2. Generate Schedule

Connect your Google Calendar and generate a personalized study schedule. The system will:

  • Find available time slots ("dead air")
  • Create study tasks with specific topics
  • Link relevant learning resources (YouTube videos, etc.)
  • Insert tasks directly into your calendar

3. Take Practice Tests

Generate practice tests based on your syllabus:

  • Select test type (Quiz, Midterm, Final)
  • Answer questions based on course topics
  • Get instant feedback with explanations

4. Track Mastery

View your 3D concept map:

  • See what you know (green) vs. what you haven't touched (red)
  • Update mastery levels as you learn
  • Track overall progress

5. Active Recall During YouTube

Install the Chrome extension and watch educational videos:

  • Extension detects video topics
  • Interrupts every 5 minutes with relevant questions
  • Reinforces learning through active recall

πŸŽ“ Technical Highlights

Privacy-First Approach

  • Local LLM Processing: Uses Ollama for syllabus parsing (optional)
  • No Data Leakage: Student data never leaves the machine unless explicitly configured
  • Secure Storage: Chrome extension uses local storage only

Agentic Capabilities

  • Web Automation: Selenium-based course enrollment
  • Calendar Intelligence: Finds optimal study times automatically
  • Resource Discovery: YouTube, Coursera, EdX integration

Smart Features

  • Topic Prioritization: Based on upcoming deadlines
  • Adaptive Questions: Generated from actual syllabus content
  • 3D Visualization: Interactive Plotly.js concept maps
  • Real-Time Updates: Mastery tracking updates visualization instantly

πŸ† Demo Highlights for SB Hacks Judges

The "Agentic" Proof

  • Show the AI actually clicking a button on Coursera/EdX during demo
  • This is the "Aha!" moment that demonstrates true automation

The "Last-Mile" Problem

  • Most apps just give you a list of links
  • Project Nexus executes the schedule:
    • It puts tasks in your calendar
    • It opens the exact video you need to watch
    • It tracks your progress automatically

Privacy Flex

  • Mention that the agent uses Local LLMs (Ollama) to process syllabi
  • Student's data never leaves the machine
  • Perfect for security-conscious judges

Visual Impact

  • Show the transformation: 10-page messy PDF β†’ Living, breathing 3D concept map
  • Green/Red nodes show mastery at a glance
  • Judges will love seeing the syllabus come alive

πŸ“ Project Structure

backend/
β”œβ”€β”€ context_phase/
β”‚   └── syllabus_parser.py      # PDF/text parsing, deadline extraction
β”œβ”€β”€ agentic_phase/
β”‚   β”œβ”€β”€ calendar_sync.py        # Google Calendar API integration
β”‚   β”œβ”€β”€ task_manager.py         # Study task creation and scheduling
β”‚   β”œβ”€β”€ resource_finder.py      # YouTube, Coursera, EdX resource discovery
β”‚   └── course_enrollment.py    # Selenium-based auto-enrollment
β”œβ”€β”€ active_phase/
β”‚   └── practice_test_generator.py  # LLM-based test generation
β”œβ”€β”€ mastery_phase/
β”‚   └── visualization.py        # 3D concept map generation
└── app.py                      # Flask REST API

frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ HomePage.js         # Landing page
β”‚   β”‚   β”œβ”€β”€ SyllabusUpload.js   # PDF/text upload interface
β”‚   β”‚   β”œβ”€β”€ ScheduleView.js     # Calendar and schedule display
β”‚   β”‚   β”œβ”€β”€ PracticeTest.js     # Practice test interface
β”‚   β”‚   └── ConceptMap.js       # 3D visualization component
β”‚   └── App.js                  # Main React router
└── package.json

chrome-extension/
β”œβ”€β”€ manifest.json               # Extension configuration
β”œβ”€β”€ content.js                  # YouTube video detection and questions
β”œβ”€β”€ background.js               # Service worker
└── popup.html/js               # Extension popup

πŸ”§ Configuration

Environment Variables (.env)

# Google Calendar API
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_REDIRECT_URI=http://localhost:5000/auth/callback

# Optional: OpenAI API (if not using Ollama)
OPENAI_API_KEY=your_openai_key

# Ollama Configuration (for local LLM)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama2

# Flask Configuration
FLASK_ENV=development
FLASK_SECRET_KEY=your_secret_key

πŸ› Troubleshooting

Chrome Extension not working?

  • Ensure extension is enabled in chrome://extensions/
  • Check that you're on a YouTube video page
  • Verify backend API is running

Selenium/ChromeDriver issues?

  • Ensure ChromeDriver version matches Chrome browser
  • Install via: brew install chromedriver (macOS) or download from chromedriver.chromium.org

Ollama connection errors?

  • Start Ollama: ollama serve
  • Verify model: ollama list
  • Pull model if needed: ollama pull llama2

See SETUP.md for detailed troubleshooting.

🚧 Future Enhancements

  • Mobile app for iOS/Android
  • Integration with more learning platforms (Khan Academy, MIT OCW)
  • Spaced repetition scheduling
  • Collaborative study groups
  • AI tutor for personalized explanations
  • Analytics dashboard for study habits

πŸ“ License

This project is created for SB Hacks 2024.

πŸ‘₯ Contributors

Created for SB Hacks 2024 at UCSB.

πŸ™ Acknowledgments

  • Ollama for local LLM support
  • Google Calendar API for scheduling
  • YouTube Search API for resource discovery
  • React Three Fiber for 3D visualizations
  • Plotly.js for interactive charts

Built with ❀️ for students who want to turn chaos into clarity.

About

Project for SB Hacks XII

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages