How mrgutierrezmario/lecture-note-app works
AI Lecture Notes is a browser-based lecture recorder that streams audio for live transcription and periodic note generation, then supports reviewing, querying, editing, and exporting lectures. The README documents additional account, upload, retention, and Drive capabilities, which are represented even where their implementation was not sampled. The runtime excerpts show the application/router wiring, WebSocket recording path, authentication, and storage access; arrows for unsampled feature internals are limited to documented behavior.
Main entry points: main.py FastAPI app · websocket_handler.py Recording handler · database.py Database access · sessions.py Lecture routes
Components 29
Browser workspace
- Workspace UI
app/ui_frontend/src/App.jsx - Recording socket
app/ui_frontend/src/hooks/useWebSocket.js - Lecture panes
app/ui_frontend/src/components - Sign-in UI
app/ui_frontend/src/components/Login.jsx
Application API
- FastAPI app
app/ui_backend/main.py - Account security
app/ui_backend/accounts/auth.py - Account routes
app/ui_backend/routes/auth.py - Lecture routes
app/ui_backend/routes/sessions.py - History routes
app/ui_backend/routes/history.py - Settings routes
app/ui_backend/routes/settings.py - Drive routes
app/ui_backend/routes/drive.py - Admin routes
app/ui_backend/routes/admin.py
Lecture processing
- Recording handler
app/ui_backend/realtime/websocket_handler.py - Audio transcription
app/ui_backend/ai/transcriber.py - Notes and chat AI
app/ui_backend/ai/notes_generator.py - Document processing
app/ui_backend/ai/document_processor.py - Image analysis
app/ui_backend/ai/image_analyzer.py - Lecture exports
app/ui_backend/exports
Data and retention
- Database access
app/ui_backend/core/database.py - Lecture and user records
app/ui_backend/core/models.py - Quota management
app/ui_backend/storage/quota.py - Audio retention
app/ui_backend/storage/cleanup.py - Audio object client
app/ui_backend/storage/s3_client.py
External services
- PostgreSQL
- S3-compatible storage
- AI providers
app/ui_backend/ai/providers.py - Google Drive
- Email service
app/ui_backend/integrations/mailer.py
Other components
- Lecture user
Connections 42
- Lecture user → Workspace UI: uses
- Workspace UI → Sign-in UI: presents sign-in
- Workspace UI → Lecture panes: shows lecture
- Workspace UI → Recording socket: streams recording
- Recording socket → Recording handler: sends audio and controls
- Recording handler → Recording socket: sends live updates
- FastAPI app → Account security: applies middleware
- FastAPI app → Account routes: mounts routes
- FastAPI app → Lecture routes: mounts routes
- FastAPI app → History routes: mounts routes
- FastAPI app → Settings routes: mounts routes
- FastAPI app → Drive routes: mounts routes
- FastAPI app → Admin routes: mounts routes
- FastAPI app → Recording handler: dispatches socket
- Sign-in UI → Account routes: requests account actions
- Account routes → Database access: reads and writes users
- Account routes → Email service: sends account email
- Account security → Database access: loads user
- Recording handler → Audio transcription: transcribes chunks
- Recording handler → Notes and chat AI: generates notes
- Recording handler → Database access: stores session data
- Recording handler → Quota management: checks quota
- Recording handler → Audio object client: stores audio chunks
- Lecture routes → Database access: reads and writes lectures
- Lecture routes → Document processing: extracts uploads
- Lecture routes → Image analysis: analyzes images
- Lecture routes → Notes and chat AI: answers lecture questions
- Lecture routes → Lecture exports: builds exports
- Lecture routes → Audio object client: reads audio
- History routes → Database access: loads lecture history
- History routes → Quota management: reads quota
- Settings routes → Database access: reads and writes settings
- Drive routes → Google Drive: transfers lecture copies
- Admin routes → Database access: manages accounts
- Audio transcription → AI providers: uses speech model
- Notes and chat AI → AI providers: uses text model
- Document processing → AI providers: uses vision model
- Image analysis → AI providers: uses vision model
- Database access → PostgreSQL: queries
- Audio object client → S3-compatible storage: reads and writes objects
- Audio retention → Database access: finds expired audio
- Audio retention → Audio object client: deletes expired audio