TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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, וכל פעולת כתיבה נחסמת ("מצב דמו — הפעולה לא נשמרת"). אין שינוי במשתמשים או בנתונים האמיתיים.