TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
העוזר האישי שלי ללימודים באוניברסיטה הפתוחה
Translation pending
EducationGitHub @yuv12ofOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Personal study assistant for the Open University of Israel: schedule, deadlines, progress and (soon) course-book Q&A. Hebrew, right-to-left, installable on phone and iPad.
The full product plan is in docs/PLAN.md.
SEMESTERS in src/lib/semester.ts (mirrored by the semesters table); demo course data lives in src/data/semester-2027a.jsonnpm install
cp .env.example .env.local # fill in values (optional: without them the app runs without sign-in)
npm run dev
supabase/migrations/0000_baseline.sql (the whole schema: tables, functions, triggers, RLS policies, grants and the books storage bucket), then every later file in that folder in number order (0019, 0020…).
supabase/migrations/archive/ is history only: those files were applied to the live database before the baseline and are already included in it. Don't run them.
Courses are added from the app (Settings → courses reads the official requirements page), so no seed data is needed.
Every new schema change goes in a new numbered file, committed together with the code that needs it.https://<your-project>.supabase.co/auth/v1/callbackhttps://<your-app>.vercel.app/auth/callback and http://localhost:3000/auth/callback.Import the GitHub repo, then add the environment variables:
| Name | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase project URL |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Supabase publishable key |
Once the Supabase variables are set, every page requires sign-in, and a new account waits on /pending until an admin approves it (profiles.status).
Settings → סנכרון ליומן Google creates a private iCal link (/api/calendar/<token>).
Add it in Google Calendar → Settings → Add calendar → From URL. It contains deadlines, exams and the study plan,
and Google refreshes it every few hours. Resetting the link invalidates the old one.
Settings → דואר מהאוניברסיטה generates a Google Apps Script (with a personal token) that forwards only
openu.ac.il mail to /api/ingest/mail every 10 minutes. Mail is stored in mails / mail_attachments.
A scheduled Claude task (runs on the user's Claude subscription, via the Supabase connector) fills in
summary, category, action_items and reads exam dates from the exam-notice PDFs into exams (source mail).
src/lib/planner.ts is a pure function: availability + deadlines + exam dates → dated sessions.
Assignment prep happens in the 14 days before a deadline, exam revision in the 21 days before an exam,
and leftover time is optional routine study rotating between courses.
Open the site in Safari → Share → Add to Home Screen.