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 ↗Installable web app (PWA) for Cornerstone Christian School families and staff. Separate from all AdrenalineX projects.
cornerstone-school-app)cornerstone-school-app (ref cvvdwhgdiqnoqgxtgzfw)| Content | Source | When |
|---|---|---|
| Calendar | Google Calendar [email protected] | Daily 11:00 AM & 6:00 PM ET + "Update now" |
| Announcements | csjax.org/news-and-events/announcements.cfm (+ admin posts) | Daily 11:00 AM & 6:00 PM ET |
| Field trip permission slips | csjax.org School Info → Field Trip Permission Slips (/school-info/field-trip-permission-slips.cfm) | Daily 11:00 AM & 6:00 PM ET |
| Documents & school forms | csjax.org Document Library | Daily 11:00 AM & 6:00 PM ET |
| Push notifications | Sent from /admin | On demand |
The daily job is a Supabase pg_cron task (csjax-daily-sync) that calls the sync-website Edge Function at 15:00, 16:00, 22:00 and 23:00 UTC; the function only runs the update at 11 AM and 6 PM New York time, so it follows daylight saving.
index.html — the app (Home, Calendar, Field Trips, Info, Links, Contact)admin.html — admin sign-in and toolssw.js — offline support and push notification displaymanifest.webmanifest, icons/ — install name and iconssupabase/functions/sync-website — website + calendar syncsupabase/functions/send-push — sends Web Push to every subscribed deviceorientation: any in the manifest).private.config table (not exposed through the API).insert into public.admins (email) values ('[email protected]');Pushing to main deploys automatically once the repo is connected in Vercel → Settings → Git.
https://app.csjax.org/dismissal/<teacher-name> (e.g. /dismissal/raja-backmon); list of all boards at /dismissal./dismissal/williams-newkirk shows Jarrodd Williams' and Alexandria Newkirk's classes together (each student tagged with their teacher). Add more in the COMBINED list at the top of api/dismissal.js; teachers in a combined board are hidden from the class lists. Name overrides (e.g. Nichelle English-Wilson → Nichelle Wilson, link /dismissal/nichelle-wilson) live in RENAME in the same file./api/dismissal answers only requests from the IPs in the Vercel env var DISMISSAL_ALLOWED_IPS (currently 107.1.157.26). Everyone else sees "Campus network only".public.dismissal_boards (no public access). The Chrome extension writes through ingest_dismissal(key, boards); the API reads through read_dismissal(key, slug) using DISMISSAL_READ_KEY. Both keys live in private.config.chrome-extension/ — pulls every teacher page from KidAccount (teacherlist.php → teacherspage.php) at 2:20 PM on weekdays in the background of a signed-in Chrome, then uploads. Boards refresh themselves every minute and fit the screen./kiosk)https://app.csjax.org/kiosk — full-screen app. On first launch the teacher taps their class; the choice is saved on that device and the board opens automatically after every restart.https://app.csjax.org/kiosk?board=<teacher-slug> skips the picker.https://app.csjax.org/kiosk. Then set it as the auto-launch kiosk app for that OU (Kiosks → Auto-launch app). The Dismissal Sync extension is not needed on these devices.kiosk-launcher/ is a small extension for the classroom Chromebooks/Chromeboxes. On school days it opens https://app.csjax.org/kiosk full-screen at 2:30 PM and closes it at 3:30 PM, so the device is free for teaching the rest of the day. KidAccount is pulled at 2:20 PM by the Dismissal Sync extension, so the board is ready when it opens.
kiosk-launcher folder → Chrome Web Store Developer Dashboard → upload as a Private (domain-only) item → Admin console → Devices → Chrome → Apps & extensions → Users & browsers → classroom OU → + → Add from Chrome Web Store (or by ID) → Force install. Use this instead of the kiosk auto-launch setup above.{"board": {"Value": "raja-backmon"}, "start": {"Value": "14:30"}, "end": {"Value": "15:30"}, "weekdaysOnly": {"Value": true}}
Leave board out to let the teacher pick the class on screen (saved on that device).