AI-powered browser extension that enhances the Piazza experience with intelligent features for students and instructors.
Piazza-AI-Plugin/
βββ π frontend/ # Chrome Extension
β βββ manifest.json # Extension configuration
β βββ content/ # Content scripts (Piazza integration)
β βββ popup/ # Extension popup UI
β βββ background/ # Service worker
βββ βοΈ backend/ # FastAPI Backend
β βββ app/
β β βββ api/ # API endpoints
β β βββ core/ # Core functionality (config, database)
β β βββ models/ # Data models
β βββ main.py # FastAPI application
β βββ requirements.txt # Python dependencies
βββ ποΈ supabase/ # Database & Auth
β βββ migrations/ # Database schema changes
β βββ functions/ # Edge functions
β βββ config.toml # Supabase configuration
βββ π§ .github/workflows/ # CI/CD pipelines
- User Interaction: User interacts with enhanced Piazza interface through the Chrome extension
- Content Processing: Extension captures and processes Piazza content
- API Communication: Extension sends requests to FastAPI backend via CORS-enabled endpoints
- Knowledge Retrieval: RAG engine searches vector database for relevant context and documents
- AI Processing: Backend combines retrieved context with user queries for enhanced AI responses
- Embedding Generation: New content is processed into embeddings and stored for future retrieval
- Database Operations: User data, analytics, embeddings, and AI responses stored in Supabase
- Real-time Updates: Live updates pushed back to extension via WebSocket/polling
- π€ AI-Powered Assistance: Intelligent responses and content analysis
- π Analytics Dashboard: Usage patterns and learning insights
- π Secure Authentication: Supabase-based user management
- π Real-time Sync: Live updates across devices and sessions
- π¨ Enhanced UI/UX: Seamless integration with Piazza's interface
- π± Cross-Platform: Works across different browsers and devices
| Component | Technology | Purpose |
|---|---|---|
| Frontend | Chrome Extension APIs | Browser integration & UI |
| Backend | FastAPI + Python | REST API & business logic |
| Database | Supabase (PostgreSQL) | Data persistence & auth |
| AI Services | OpenAI + Anthropic | Natural language processing |
| DevOps | GitHub Actions | CI/CD & automated testing |
| Monitoring | Supabase Analytics | Usage tracking & insights |
- π¨βπ» 10 Developers: Full-stack development (frontend + backend)
- π§ 2 Technical Leads: Architecture oversight & code review
- π¨ 2 Designers: UI/UX design & user experience
- Chrome Browser (for extension development)
- Python (v3.11+)
- Supabase CLI (for database)
Follow these guides in order for complete setup:
- π Backend Setup Guide
cd backend
python -m venv ../venv
source ../venv/bin/activate # On Windows: ..\venv\Scripts\activate
pip install -r requirements.txt
touch .env
# Edit .env with your configurationcd supabase
supabase start
supabase status # Copy the keys to backend/.env- Local database setup
- Schema initialization
- CLI configuration
cd frontend
npm install
npm run dev# 1. Clone repository
git clone https://github.com/ubclaunchpad/Piazza-AI-Plugin.git
cd Piazza-AI-Plugin
# 2. Setup backend (see backend/README.md for details)
cd backend && pip install -r requirements.txt
touch .env # Add your environment variables
python main.py
# 3. Setup database (see supabase/README.md for details)
cd ../supabase && supabase start
# 4. Setup frontend (see frontend/README.md for details)
cd ../frontend && ./build.sh
# Load build/ folder in Chrome Developer Mode- π Frontend Chrome Extension - Extension development, environment setup, and Chrome loading
- βοΈ Backend FastAPI Server - API server configuration, dependencies, and environment setup
- ποΈ Supabase Database - Database setup, migrations, and local development
- API Documentation - Interactive API docs (when backend is running)
- Architecture Overview - System design and component interaction
- Contributing Guidelines - Development workflow and standards
- Create Feature Branch:
git checkout -b feature/your-feature-name - Make Changes: Implement your feature with proper testing
- Run Tests:
npm test(frontend) +pytest(backend) - Commit: Follow conventional commit format
- Push & PR: Create pull request for review
- Code Review: Requires approval from technical leads
- Merge: Squash and merge to main branch
- Backend: Automatic deployment via GitHub Actions
- Database: Migrations applied via Supabase CLI
- Extension: Built and packaged for Chrome Web Store
- Check Issues for available tasks
- Follow the development workflow above
- Ensure code follows project style guidelines
- Add tests for new functionality
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Built by UBC Launch Pad
