TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
חדרי למידה קבוצתיים עם עוזר AI
Translation pending
EducationTypeScript · JavaScriptGitHub @guy4213OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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 ↗חדרי למידה קבוצתיים לסטודנטים, עם עוזר AI שמשתתף בשיחה.
| מסמך | תוכן |
|---|---|
| SPEC.md | מה המערכת עושה |
| TECHNICAL_SPEC.md | איך היא בנויה |
| TASKS.md | Roadmap ומעקב |
npm install
cp .env.example .env.local
# מפתח חתימה מקומי (ES256). הקובץ ב-.gitignore — לא לקמט אותו.
npx supabase gen signing-key --algorithm ES256 > supabase/signing_keys.json
npm run db:start # Supabase מקומי — מדפיס URL ומפתחות
signing_keys.json חייב להיות מערך JSON. אם הפקודה כתבה אובייקט בודד, עוטפים אותו ב-[ ].
בזכות המפתח האסימטרי, auth.getClaims() מאמת את ה-session מקומית, בלי קריאה לשרת האימות בכל עמוד.
מעתיקים מהפלט של db:start ל-.env.local:
| פלט | משתנה |
|---|---|
API_URL | NEXT_PUBLIC_SUPABASE_URL |
PUBLISHABLE_KEY | NEXT_PUBLIC_SUPABASE_ANON_KEY |
SECRET_KEY | SUPABASE_SERVICE_ROLE_KEY |
המפתחות הישנים (ANON_KEY/SERVICE_ROLE_KEY, JWT בחתימת HS256) לא עובדים כשמפתח החתימה מופעל.
npm run dev # http://localhost:3000
Supabase Studio: http://localhost:54323
ב-Git Bash על Windows, אם supabase start לא מוצא את docker:
export PATH="/c/Program Files/Docker/Docker/resources/bin:$PATH".
סיסמה לכולם: Password123!
| מייל | תפקיד |
|---|---|
[email protected] | סטודנטית, יוצרת חדר R1 (משתמשת הדמו) |
[email protected] | סטודנט, חבר ב-R1 |
[email protected] | Super Admin — פאנל ניהול ב-/admin |
| פקודה | |
|---|---|
npm run dev | שרת פיתוח |
npm run build | build ל-production |
npm run lint | ESLint, כולל כללי הגבולות |
npm run typecheck | TypeScript |
npm run format | Prettier |
npm run db:start / db:stop | Supabase מקומי |
npm run db:reset | מריץ מחדש migrations + seed |
קומפוננטות ודפים לא מייבאים Supabase. ESLint נכשל אם כן.
| צריך | משתמשים ב- |
|---|---|
| DB | lib/repositories/ |
| Realtime | hooks/useRoomChannel.ts |
| קבצים | lib/storage/ |
פירוט: TECHNICAL_SPEC.md §2.2.
בפיתוח בלבד: http://localhost:3000/dev/rtl
כפתור צף בצד ימין למטה עובר בין מצב דמו למצב רגיל. כרגע מצב דמו פעיל כברירת מחדל (מוגדר בקוד, בלי משתנה סביבה). הבחירה נשמרת ב-cookie stugether_demo.
במצב דמו האפליקציה מציגה נתוני דוגמה (lib/demo/fixtures.ts) בלי לגשת ל-Supabase, וכל פעולת כתיבה נחסמת ("מצב דמו — הפעולה לא נשמרת"). אין שינוי במשתמשים או בנתונים האמיתיים.