How venkatesh123-start/aicte-batch7--lecture-voice-to-notes-generator works
Purpose
This repository is a lecture voice-to-notes generator. It accepts recorded lecture media, converts speech to text, and is intended to produce study-oriented outputs such as concise notes, quizzes, or flashcards using AI services.
Application Entry Points
• Backend service entry point: backend/app.py
• Frontend browser entry point: frontend/src/main.jsx, which mounts the main UI in frontend/src/App.jsx
• The frontend is a Vite-based client application, configured by frontend/vite.config.js.
• A standalone sample-media generator exists at create_sample_lecture.py.
Frontend Interaction Layer
The browser UI is concentrated in frontend/src/App.jsx, with styling in frontend/src/App.css and frontend/src/index.css. This layer is responsible for the user-facing workflow: selecting/uploading lecture audio or video, initiating backend processing, and presenting generated results. It should remain separated from speech recognition, AI generation, and persistence concerns.
Backend Processing Boundary
backend/app.py is the central server boundary between the client and AI/media-processing pipeline. It likely owns HTTP request handling, upload acceptance, orchestration of transcription and note-generation steps, and response serialization. Backend dependencies are declared in backend/requirements.txt; these determine the actual server framework, speech-to-text, and generative-AI integrations.
Media Ingestion and Storage
Uploaded lecture media is stored under backend/uploads/, demonstrated by backend/uploads/WIN_20260212_19_42_19_Pro.mp4. Sample inputs at repository root (sample_lecture.mp3, sample_lecture.wav) support local development and pipeline validation. Media files are an important boundary: uploads should be treated as untrusted input and processed independently from persistent note records.
Persistence
SQLite database artifacts appear in both backend and root instance locations:
• backend/instance/voice_to_notes.db
• backend/voice_to_notes.db
• instance/voice_to_notes.db
These indicate local relational persistence for uploaded lectures, transcripts, generated notes, or request metadata. The duplicate locations suggest application-instance configuration or historical database copies; deployment should establish one authoritative database path.
Core End-to-End Flow
1. The Vite frontend (frontend/src/App.jsx) submits lecture media to the backend.
2. backend/app.py receives and stores the upload in backend/uploads/.
3. The backend invokes speech-to-text AI to derive a transcript.
4. The transcript is passed to generative AI to create structured study material.
5. Generated content and related metadata can be persisted in SQLite and returned to the frontend for display.
Runtime and External Dependencies
The system spans a JavaScript/Vite browser runtime (frontend/package.json) and a Python backend runtime (backend/requirements.txt). It depends architecturally on external AI capabilities for transcription and generative summarization, with environment-based secrets/configuration implied by .env. Local filesystem storage and SQLite are the included infrastructure; no separate cloud, queue, or container infrastructure is present in the tree.
Main entry points: app.py Backend API & orchestrator · .env Environment secrets · App.jsx Lecture workflow UI · main.jsx Browser entry
Components 14
Browser Client
- Vite client runtime
frontend/vite.config.js - Browser entry
frontend/src/main.jsx - Lecture workflow UI · Uploads media and presents study results.
frontend/src/App.jsx
Python Backend
- Backend API & orchestrator · Accepts uploads and coordinates the AI pipeline.
backend/app.py - Backend dependencies
backend/requirements.txt - Lecture transcript
- Structured study material
Local Storage
- Uploaded lecture media · Untrusted media is stored separately before processing.
- SQLite persistence · One authoritative database location should be selected.
backend/instance/voice_to_notes.db - Sample lecture media
sample_lecture.mp3
Other components
- Speech-to-text AI
- Study-material AI · Generates notes, quizzes, or flashcards.
- Sample lecture generator
create_sample_lecture.py - Environment secrets · Supplies AI credentials and service configuration.
.env
Connections 17
- Vite client runtime → Browser entry: serves
- Browser entry → Lecture workflow UI: mounts
- Lecture workflow UI → Backend API & orchestrator: uploads media / requests results
- Backend dependencies → Backend API & orchestrator: provides runtime integrations
- Backend API & orchestrator → Uploaded lecture media: stores upload
- Uploaded lecture media → Speech-to-text AI: lecture media
- Speech-to-text AI → Lecture transcript: produces
- Lecture transcript → Study-material AI: prompt input
- Study-material AI → Structured study material: produces
- Backend API & orchestrator → SQLite persistence: persists metadata and outputs
- Structured study material → Backend API & orchestrator: serialized response
- Backend API & orchestrator → Lecture workflow UI: study results
- Sample lecture generator → Sample lecture media: creates
- Sample lecture media → Backend API & orchestrator: local pipeline input
- Environment secrets → Backend API & orchestrator: configures
- Environment secrets → Speech-to-text AI: credentials
- Environment secrets → Study-material AI: credentials