Catch up on missed lectures.
An open-source classroom platform that keeps lessons, notes, homework and assignments in one private place.
About
When a student misses school, they shouldn’t have to chase classmates to find out what was taught.
Lecture Recall organizes each classroom by date and subject. Students see the lesson, the approved notes and the work that’s due. Teachers manage the content. It is self-hosted, so you control the data.
Features
- Lecture archive
- Lessons by date and subject, with topics, explanations and attachments.
- Student notes
- Students submit notes. Teachers approve or reject them before the class sees them.
- Homework and assignments
- Due dates, upcoming deadlines and personal completion tracking.
- Roles
- Admin, teacher and student permissions, enforced in the database rather than the interface.
- Private by default
- Each classroom is isolated with Row Level Security, and files stay in private storage.
How it works
- Set up. Configure the code, a Supabase backend and your hosting.
- Create accounts. An admin adds usernames, temporary passwords and roles.
- Record lessons. Teachers add lessons, resources and assignments.
- Review notes. Student contributions are approved before they’re shared.
- Catch up. Students review missed days and track their homework.
Setup
Requires Node.js 18+, Git and a Supabase project. Built with React, TypeScript, Vite, Tailwind CSS and Supabase.
git clone https://github.com/chocolocoe/lecture-recall.git cd lecture-recall npm install cp .env.example .env npm run dev
Set VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY in .env. Never put a service-role key in a VITE_ variable, because those are public. Migrations, storage and Edge Function steps are in supabase/DEPLOYMENT_READINESS.md.
Status
In development. Features and setup steps may change. Still to come:
- Row Level Security with authorization tests
- Lesson archive and note moderation
- Private attachments
- Assignments and progress tracking
- Deployment docs and a public demo