Project Info
π― Overview ClassMind is an intelligent multi-agent AI system that revolutionizes how students interact with their educational content. By seamlessly integrating with Google Classroom, ClassMind provides 24/7 personalized assistance, helping students navigate coursework, understand assignments, access materials, and stay on top of deadlinesβall through a natural, conversational interface. Built with cutting-edge technologies including LangGraph, FastAPI, Next.js, and Claude AI, ClassMind transforms the traditional teaching assistant experience into an always-available, context-aware digital companion that understands each student's unique academic journey. π¨ Problem Statement The Challenge Students today face overwhelming academic pressures: Information Overload: Multiple courses, dozens of assignments, countless announcements scattered across platforms Limited Support: Teaching assistants have office hours constraints and can't provide 24/7 support Fragmented Systems: Students must manually navigate between course materials, announcements, submissions, and deadlines Repetitive Questions: TAs spend significant time answering the same logistical questions repeatedly Real-World Impact 73% of students report feeling overwhelmed by coursework management (Source: Academic surveys) Office hours utilization drops significantly for students in different time zones Common questions about deadlines, materials, and logistics consume 30-40% of TA time Students often miss important announcements buried in notification overflow What Students Need An intelligent assistant that: Understands their specific courses and context Provides instant, accurate answers about assignments and deadlines Retrieves relevant course materials automatically Works 24/7 across all time zones Learns from actual course data, not generic responses β¨ Key Features π€ Multi-Agent AI Architecture ClassMind uses a sophisticated LangGraph workflow with specialized agents: Router Agent: Intelligently classifies student queries and identifies relevant courses Logistics Agent: Handles course schedules, announcements, and organizational questions Coursework Agent: Provides detailed information about assignments, due dates, and requirements Materials Agent: Retrieves and explains course materials, PDFs, links, and resources Submissions Agent: Tracks submission status and grades (for staff) Composer Agent: Synthesizes responses with proper formatting and citations Guard Agent: Ensures response quality and policy compliance π Seamless Google Classroom Integration Real-time data access to courses, assignments, announcements, and materials OAuth 2.0 authentication with automatic token refresh Direct API integration - no screen scraping or workarounds Comprehensive scope coverage for full Classroom functionality π¬ Real-Time Streaming Chat Interface Beautiful, responsive UI built with Next.js 14 and Tailwind CSS Modern chat experience with message history and context awareness Typing indicators and streaming text for better UX π Role-Based Access Control Student Role: Access to enrolled courses, assignments, and personal data TA Role: Additional access to student submissions and grading Professor Role: Full course management and analytics capabilities Secure database (Prisma ORM) for user management and token storage π Context-Aware Responses Course-specific answers based on actual Classroom data Fallback handling for ambiguous or unclear queries Guardrail ensures responses comply with user permissions and Classroom API access scopes π‘ Why This Matters? For Students Save 5-10 hours per week on administrative tasks and information hunting Never miss deadlines with instant access to due date information Reduce academic stress through 24/7 support availability Get immediate answers without waiting for office hours Focus on learning instead of navigating platforms For Teaching Assistants Reduce repetitive question load by 60-70% Focus on complex, high-value student interactions Scale support without increasing TA hours Track common student questions for curriculum improvement Provide consistent answers across all students For Educational Institutions Improve student success rates through better support Enhance learning experience with modern technology Reduce support costs while increasing availability Demonstrate innovation in educational technology Support hybrid and remote learning effectively Broader Impact ClassMind represents a shift toward democratizing educational support. By making intelligent assistance available to all students regardless of time zone, language barriers, or TA availability, we're creating more equitable learning opportunities. This technology can be scaled across institutions, potentially helping millions of students worldwide. π οΈ Tech Stack Frontend (Web Application) Framework & Core: Next.js 14 - React framework with App Router for modern server/client rendering React 18 - Component-based UI library TypeScript - Type-safe JavaScript for reliability Authentication & Database: NextAuth.js v5 - Complete OAuth 2.0 authentication with Google Prisma ORM - Type-safe database client and schema management SQLite - Database for user data and token storage UI & Styling: Tailwind CSS - Utility-first CSS framework shadcn/ui - High-quality React component library Lucide React - Modern icon library clsx & tailwind-merge - Dynamic styling utilities API Integration: Fetch API - RESTful communication with backend Google Classroom API - Direct course data access Backend (Agent Service) Framework & Core: FastAPI - High-performance Python web framework with async support Uvicorn - Lightning-fast ASGI server Pydantic - Data validation and settings management AI & LLM Stack: LangGraph - Multi-agent workflow orchestration and state management LangChain - LLM application framework with tool integration Anthropic Claude - Primary language model for agent reasoning OpenAI GPT-4 - Alternative LLM support Google Integration: google-api-python-client - Official Google API client google-auth - OAuth 2.0 authentication library google-auth-oauthlib - OAuth flow management google-auth-httplib2 - HTTP request authorization Utilities: PyPDF2 - PDF text extraction for materials analysis python-dotenv - Environment variable management Architecture & Design Patterns Backend Architecture: Multi-agent system with specialized agents for different query types State machine pattern via LangGraph for workflow orchestration Tool-based architecture for modular functionality Dependency injection for tool context management Frontend Architecture: Server components for initial rendering and data fetching Client components for interactive UI elements API route handlers for secure backend communication Middleware for authentication and authorization Integration Patterns: Event-driven streaming for real-time responses Token refresh middleware for seamless authentication CORS configuration for cross-origin requests Error boundaries for graceful failure handling Development & DevOps Package Management: npm - Frontend dependency management pip - Python package management Virtual environments for isolated Python dependencies Database Management: Prisma Migrate - Schema versioning and migrations Prisma Studio - Database GUI for development Code Quality: ESLint - JavaScript/TypeScript linting TypeScript Compiler - Static type checking Python type hints - Static typing for Python code π§ Limitations and Future Work HIGH PRIORITY π΄ 1. Vector Database for Course Materials Current Limitation: Materials are fetched on-demand but not indexed for semantic search. Proposed Solution: Implement Pinecone or Weaviate vector database Extract and embed text from PDFs, slides, and documents Enable semantic search: "Find information about neural networks in week 5 materials" Benefits: Much more intelligent material retrieval, better context for answers Impact: Would transform ClassMind from retrieval-based to true knowledge-based assistant. 2. Assignment Submission Tracking Current Limitation: Students can't track their submission history or get reminders. Proposed Solution: Implement classroom.student-submissions.me.readonly scope usage Track submitted vs. unsubmitted assignments Proactive notifications: "You have 2 assignments due this week" Integration with calendar apps for deadline reminders Impact: Reduces missed deadlines significantly based on similar systems. 3. Multi-Language Support Current Limitation: English-only interface and responses. Proposed Solution: Language detection in router agent Multilingual prompts for Claude AI Support for Spanish, Mandarin, Hindi, Arabic (top educational languages) Impact: Makes ClassMind accessible to international students and global institutions. 4. Production Database Migration Current Limitation: Using SQLite (development database). Proposed Solution: - Migrate to PostgreSQL for production MEDIUM PRIORITY π‘ 5. Conversation History & Context Memory Current Limitation: Each query is independent - no memory of previous conversation turns within a session. Proposed Solution: Implement Redis-based session storage Store last 5-10 conversation turns Update LangGraph state to include conversation history Enable follow-up questions: "What else do I need to know?" after previous query Impact: More natural conversations, better context understanding. 6. Analytics Dashboard for Instructors Current Limitation: No insights into common student questions or knowledge gaps. Proposed Solution: Build analytics dashboard showing: Most common questions by course Topics students struggle with Peak usage times Query categories distribution Most common questions by course Topics students struggle with Peak usage times Query categories distribution Help instructors identify areas needing clarification Impact: Instructors can proactively improve course materials and announcements. 7. File Type Expansion Current Limitation: Limited support for specialized file formats (Jupyter notebooks, code files). Proposed Solution: Add syntax highlighting for code files Render Jupyter notebooks inline Support for SCORM/LTI learning packages Interactive preview for common file types Impact: Better support for CS and technical courses. 8. Peer Collaboration Features Current Limitation: Individual-only experience. Proposed Solution: Anonymous Q&A board where students can help each other ClassMind moderates and suggests answers from knowledge base Upvoting/downvoting system for answer quality Gamification elements (reputation points) Impact: Builds learning community, reduces load on system. LOW PRIORITY π’ 9. Voice Interface Current Limitation: Text-only interaction. Proposed Solution: Integrate speech-to-text models Add text-to-speech for responses Voice commands: "ClassMind, what's my next assignment?" Impact: Accessibility improvement, hands-free operation. 10. Professor Workload Insights Current Limitation: TAs/Professors can't see their time savings. Proposed Solution: Calculate estimated time saved per TA Show question deflection rate ROI dashboard for institutional adoption Impact: Business case for wider adoption. 11. Integration with LMS Beyond Google Classroom Current Limitation: Google Classroom only. Proposed Solution: Canvas LMS integration Blackboard Learn integration Moodle support Universal LTI (Learning Tools Interoperability) connector Impact: Broader market reach and institutional adoption. 14. Advanced Guard Agent with Content Filtering Current Limitation: Basic guard agent doesn't filter harmful content comprehensively. Proposed Solution: Implement Moderation for content safety Academic integrity checking Plagiarism detection warnings Cheating prevention (don't provide direct answers to graded work) Impact: Maintains academic integrity, builds trust with institutions. Performance Optimizations β‘ Future Performance Improvements: Caching Layer: Redis for frequently accessed course data (reduce API calls by 60%) Rate Limiting: Implement request throttling per user Load Balancing: Horizontal scaling for agent service Edge Functions: Deploy frontend to Vercel Edge for global latency reduction GraphQL API: Replace REST endpoints for more efficient data fetching Streaming Optimization: Compress SSE payloads, implement backpressure handling ποΈ Built With AI & Machine Learning LangGraph - Multi-agent orchestration LangChain - LLM framework and tools Anthropic Claude - Primary AI model Backend FastAPI - Python web framework Uvicorn - ASGI server Pydantic - Data validation Google Classroom API - Course data integration Frontend Next.js 14 - React framework NextAuth.js - Authentication Prisma ORM - Database management Tailwind CSS - Styling TypeScript - Type safety Infrastructure Google OAuth 2.0 - Identity provider SQLite/PostgreSQL - Data persistence Server-Sent Events - Real-time streaming π¬ Summary ClassMind represents more than just a chatbotβit's a fundamental rethinking of how students interact with educational technology. By combining state-of-the-art AI with practical integration into existing systems, we've created a solution that's both powerful and accessible. In a world where education is increasingly digital and distributed, ClassMind ensures that every student has access to immediate, intelligent support regardless of time zone, language, or resource constraints. We're not replacing teachers; we're amplifying their impact and giving them back time to focus on what matters most: meaningful human connections and deep learning experiences. The future of education is AI-augmented, and ClassMind is leading the way. π
Virtual TA - AI-Powered Teaching Assistant
An intelligent multi-agent system that provides personalized assistance to students through Google Classroom integration.
Overview
Virtual TA combines a modern Next.js frontend with a powerful LangGraph-based backend to deliver real-time, context-aware responses to student queries about courses, assignments, materials, and deadlines.
Key Features
- π€ Multi-Agent AI System: Specialized agents handle different query types (logistics, coursework, materials, submissions)
- π Google Classroom Integration: Direct access to course data, assignments, and materials
- π¬ Real-time Streaming: Server-Sent Events (SSE) for smooth, progressive responses
- π Secure Authentication: OAuth 2.0 with automatic token refresh
- π₯ Role-Based Access: Student, TA, and Professor roles with appropriate permissions
- π¨ Modern UI: Beautiful, responsive interface built with Next.js and Tailwind CSS
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Student Interface β
β (Next.js + React + Tailwind CSS) β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Layer (Next.js API) β
β β’ Authentication & Authorization β
β β’ Token Management & Refresh β
β β’ Request Routing β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Agent Service (FastAPI + LangGraph) β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Router ββ βLogistics β βCourseworkβ βMaterials β β
β β Agent β β Agent β β Agent β β Agent β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββ β
β β Composer + Guard β β
β βββββββββββββββββββββββ β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββ
β Google Classroom API β
ββββββββββββββββββββββββ
Project Structure
VirtualTA/
βββ web-app/classmind/ # Next.js frontend
β βββ app/ # App router pages
β βββ components/ # React components
β βββ lib/ # Utilities & auth
β βββ prisma/ # Database schema
β
βββ agent-service/ # Python backend
β βββ app/
β β βββ agents/ # Specialized AI agents
β β βββ api/ # FastAPI routes
β β βββ graph/ # LangGraph workflow
β β βββ tools/ # Google Classroom tools
β β βββ classroom/ # API client
β βββ requirements.txt
β
βββ QUICKSTART.md # Quick setup guide
βββ INTEGRATION_GUIDE.md # Detailed integration docs
βββ README.md # This file
Quick Start
See QUICKSTART.md for detailed setup instructions.
TL;DR
- Setup Google OAuth credentials
- Configure environment variables in both services
- Start agent service:
cd agent-service && python -m uvicorn app.main:app --reload --port 8080 - Start web app:
cd web-app/classmind && npm run dev - Open http://localhost:3000 and login!
Integration Details
The frontend and backend are fully integrated:
β
Seamless Authentication: Students authenticate once via Google OAuth
β
Automatic Token Management: Tokens are securely stored and auto-refreshed
β
Streaming Responses: Real-time AI responses stream to the chat interface
β
Minimal Backend Changes: Agent service works as-is with no code changes
β
Complete API Integration: All Google Classroom data accessible to agents
See INTEGRATION_GUIDE.md for comprehensive integration documentation.
Technologies Used
Frontend
- Next.js 14: React framework with App Router
- NextAuth.js: Authentication with Google OAuth
- Prisma: Database ORM (SQLite/PostgreSQL)
- Tailwind CSS: Styling
- shadcn/ui: UI components
- TypeScript: Type safety
Backend
- FastAPI: High-performance Python web framework
- LangGraph: Multi-agent workflow orchestration
- LangChain: LLM integration and tools
- OpenAI GPT-4: Language model
- Google Classroom API: Course data access
Features in Detail
For Students
- Ask questions about courses, assignments, and materials
- Get personalized responses based on enrolled courses
- Access deadline information and upcoming assignments
- Receive AI-powered assistance 24/7
For Developers
- Modular agent architecture for easy extension
- Type-safe API contracts
- Comprehensive error handling
- Streaming responses for better UX
- Token refresh automation
- Production-ready deployment structure
Development
Frontend Development
cd web-app/classmind
npm run dev # Start dev server
npm run build # Build for production
npx prisma studio # Open database GUI
Backend Development
cd agent-service
source venv/bin/activate # Activate virtual environment
uvicorn app.main:app --reload # Start with auto-reload
python test_agent.py # Run tests
Environment Variables
Required for Web App
GOOGLE_CLIENT_ID- Google OAuth client IDGOOGLE_CLIENT_SECRET- Google OAuth client secretAUTH_SECRET- NextAuth secret keyDATABASE_URL- Database connection stringAGENT_SERVICE_URL- Backend service URL
Required for Agent Service
OPENAI_API_KEY- OpenAI API keyGOOGLE_CLIENT_ID- Google OAuth client ID (same as frontend)GOOGLE_CLIENT_SECRET- Google OAuth client secret (same as frontend)
See .env.example files in each directory for complete configuration.
Testing
Test Agent Service
# Health check
curl http://localhost:8080/
# Test streaming endpoint
curl -X POST http://localhost:8080/v1/stream \
-H "Content-Type: application/json" \
-d @test_request.json
Test Frontend
- Login with Google account
- Set role as Student
- Open Virtual TA chat
- Send test queries
- Verify streaming responses
Deployment
Production Checklist
- Set secure
AUTH_SECRET - Update
AGENT_SERVICE_URLto production backend - Configure production database (PostgreSQL recommended)
- Set up CORS with specific origins
- Enable HTTPS/SSL certificates
- Configure rate limiting
- Set up monitoring and logging
- Update Google OAuth redirect URIs
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
[Your License Here]
Support
- Quick Setup: See QUICKSTART.md
- Integration Details: See INTEGRATION_GUIDE.md
- Issues: Open an issue on GitHub
- Questions: Check documentation or ask in discussions
Acknowledgments
Built with β€οΈ using cutting-edge AI technology to empower students and educators.
Analysis
View
Metric
- 8
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- FastAPIIn code
- LangChainIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
9 of 9 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
228 KB
Source files
88
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
PesseJinkman/VirtualTA
105 files Β· 615 KB Β· @ bd7fbfe
Structure
Interface
42 files Β· 40%Screens, components and styles rendered to the user.
API & routing
13 files Β· 12%Request entry points: routes, handlers and controllers.
Application logic
10 files Β· 10%Domain rules, services and shared utilities.
Data & schema
1 file Β· 1%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here β open the file browser to check anything the diagram implies.
Languages
- Python41%
- Markdown32%
- TypeScript27%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
web-app/classmind/package.json
npm Β· 19- @auth/prisma-adapter
- @prisma/client
- class-variance-authority
- clsx
- lucide-react
- next
- next-auth
- prisma
- react
- react-dom
- tailwind-merge
- +8 more
agent-service/requirements.txt
pypi Β· 16- anthropic
- fastapi
- google-api-python-client
- google-auth
- google-auth-httplib2
- google-auth-oauthlib
- langchain
- langchain-anthropic
- langchain-community
- langchain-core
- langgraph
- pydantic
- pydantic-settings
- PyPDF2
- python-dotenv
- uvicorn
Declared in the repositoryβs manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This projectβs features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.