How thandupsherpa/study-notes-extension works
Digiicampus Study Assistant is a Chrome extension that turns course material into downloadable study-note PDFs. A student opens the popup, selects a semester, course, and module, then starts generation. The workflow collects portal content through the real or mock adapter, requests structured notes from the AI backend, formats them as a PDF, and downloads the result. The popup also supports search, settings, status, and note preview. The README documents the backend and product capabilities; unsampled implementation details are not inferred beyond those documented relationships.
Main entry points: App.tsx Popup workflow · notesService.ts Notes workflow · realAdapter.ts Live portal adapter · storageService.ts Storage service
Components 23
Extension popup
- Popup workflow
src/popup/App.tsx - Course browser
src/popup/components/CourseAccordion.tsx - Module rows
src/popup/components/ModuleRow.tsx - Term and search
src/popup/components/TopControls.tsx - Settings
src/popup/components/SettingsModal.tsx - Generation progress
src/popup/components/ProgressSheet.tsx - Notes preview
src/popup/components/NotesPreviewModal.tsx - Session status
src/popup/components/StatusBanner.tsx - Translations
src/utils/i18n.ts
Portal access
- Digiicampus portal
- Live portal adapter
src/services/digiicampus/realAdapter.ts - Mock adapter
src/services/digiicampus/mockAdapter.ts - Portal content script
src/content/digiiContentScript.ts - DOM and syllabus parser
src/content/parsers/domParser.ts
Note generation
- Notes workflow
src/services/notesService.ts - AI API client
src/services/api.ts - Express AI backend
backend/server.js - PDF formatter
src/pdf/pdfGenerator.ts
Extension platform
- Storage service
src/storage/storageService.ts
Other components
- Student
- Gemini AI
- Chrome local storage
- Browser downloads
Connections 24
- Student → Popup workflow: opens
README.md - Popup workflow → Course browser: renders
src/popup/App.tsx - Popup workflow → Term and search: renders
src/popup/App.tsx - Popup workflow → Settings: renders
src/popup/App.tsx - Popup workflow → Generation progress: renders
src/popup/App.tsx - Popup workflow → Notes preview: renders
src/popup/App.tsx - Popup workflow → Session status: renders
src/popup/App.tsx - Course browser → Module rows: renders
src/popup/components/CourseAccordion.tsx - Popup workflow → Notes workflow: starts generation
src/popup/App.tsx - Notes workflow → Live portal adapter: selects live adapter
src/services/notesService.ts - Notes workflow → Mock adapter: selects mock adapter
src/services/notesService.ts - Live portal adapter → Digiicampus portal: queries session content
src/services/digiicampus/realAdapter.ts - Live portal adapter → Portal content script: messages tab
src/services/digiicampus/realAdapter.ts - Portal content script → DOM and syllabus parser: uses parser
src/content/digiiContentScript.ts - DOM and syllabus parser → Digiicampus portal: reads page DOM
src/content/parsers/domParser.ts - Notes workflow → AI API client: requests notes
src/services/notesService.ts - AI API client → Express AI backend: sends generation request
README.md - Express AI backend → Gemini AI: generates structured notes
README.md - Notes workflow → PDF formatter: formats notes
src/services/notesService.ts - Notes workflow → Browser downloads: downloads PDF
src/services/notesService.ts - Popup workflow → Storage service: saves settings
src/popup/App.tsx - Notes workflow → Storage service: reads settings
src/services/notesService.ts - Storage service → Chrome local storage: reads and writes
src/storage/storageService.ts - Popup workflow → Translations: uses translations