Turn lectures into structured notes, track your focus in real time, and leave class with a beautiful, study-ready review sheet.
-
Live Capture & Transcription
- Streams microphone audio during class and transcribes in real time using the Gemini API.
- At session end, auto-formats the full transcript into clean, organized HTML notes.
-
Focus Tracking (0–100)
- Uses the webcam to periodically estimate your attention score and shows a live progress bar.
- Logs low-focus moments for quick revisit; shows gentle on-screen nudges when attention dips.
- (Optional) If focus collapses, triggers a notification to a “teacher” using an external service like IFTTT.
-
Smart Review Sheets
- Generates a magazine-style study sheet after each session:
- Title + subtitle, key points, definitions, examples
- “To remember”, keywords, and questions for your teacher
- A focus timeline chart highlighting segments to revisit
- Generates a magazine-style study sheet after each session:
-
Interactive Learning Tools
- AI-generated MCQ quizzes from your session content
- One-click PDF export for offline study or printing
-
Course & Session Management
- Create and organize courses (e.g., Biology 101, Art History).
- Each recording saves into its course library.
- Quick Record: SharpLearn suggests a relevant course name based on live content.
POST /transcribe→ ingest/stream audio chunks → partial + final transcriptsPOST /summarize→ transform transcript → structured notes + magazine-style HTMLPOST /focus→ ingest client-side focus metrics → analytics + thresholdsPOST /notify(optional) → call IFTTT webhook when focus is critically low
Note: Endpoint names are illustrative; match them to your implementation.
- Frontend: React + TypeScript, Media APIs (getUserMedia), Canvas/Chart for focus graph, HTML→PDF
- AI: Gemini API (speech→text, summarization, quiz generation, metadata extraction)
- Backend: Node.js or FastAPI (REST), IFTTT webhook integration (optional)
- Build/Tooling: Vite/Next (choose one), ESLint/Prettier
- Storage: Local/Cloud (choose your provider for transcripts, notes, and sessions)
Prereqs: Node 18+, Python 3.10+ (if using FastAPI), a modern browser, a valid GEMINI_API_KEY.
-
Clone
git clone https://github.com/your-org/sharplearn.git cd sharplearn -
Env Vars Create
.envfiles:-
apps/web/.envVITE_GEMINI_API_BASE=/api # proxy path or direct API URL VITE_ENABLE_IFTTT=false -
apps/api/.envGEMINI_API_KEY=your_gemini_key IFTTT_WEBHOOK_URL=https://maker.ifttt.com/trigger/FOCUS_ALERT/with/key/xxxx # optional
-
-
Install
# web cd apps/web && npm install # api (Node.js) cd ../api && npm install # or, if using FastAPI: pip install -r requirements.txt
-
Run Dev
# terminal 1 — backend (Node.js) cd apps/api && npm run dev # terminal 2 — web cd apps/web && npm run dev
-
Open
- Visit
http://localhost:5173(or your dev URL) - Allow mic + camera permissions
- Visit
- On-device camera frames are sampled periodically and processed to compute a focus score; no raw video is stored by default.
- Audio and transcripts are used only to generate your notes and quizzes.
- You control export (PDF) and notifications (IFTTT off by default).
Review
/apps/web/src/config/privacy.ts(or equivalent) to adjust data handling.
- Focus sampling rate (e.g., every 5–10s)
- Low-focus threshold (e.g., 25/100)
- Nudge behavior (toast vs. modal)
- PDF layout (margins, fonts, cover)
- Course auto-naming (top-keywords from transcript)
- Mic capture & live transcript
- Focus score updates and UI bar
- Low-focus logging + timeline markers
- Summary → HTML review sheet
- Quiz generation (MCQ)
- PDF export (content not cut; styles preserved)
- IFTTT notification (if enabled)
- Offline cache for notes
- Multi-speaker diarization
- Collaborative study rooms
- Mobile PWA capture
- LMS (Canvas/Moodle) export
PRs welcome! Please:
- Open an issue to discuss scope.
- Follow code style + tests.
- Keep features behind flags when uncertain.
MIT © You
- Gemini API for transcription & summarization
- IFTTT for optional alerting
- Everyone who tested SharpLearn in real classes
SharpLearn aims to turn passive listening into an active, measurable, and optimized learning flow. Happy studying!
Prerequisites: Node.js
- Install dependencies:
npm install - Set the
GEMINI_API_KEYin .env.local to your Gemini API key - Run the app:
npm run dev