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).