TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Workspace digital untuk menyusun perangkat pembelajaran dengan bantuan AI.
Translation pending
EducationTypeScript · PLpgSQLGitHub @akunsyarif-rgbOnlineOwner 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 ↗Workspace digital untuk membantu guru menyusun, mengedit, menyimpan, dan mengekspor perangkat
pembelajaran dengan bantuan AI — dibangun mengikuti Blueprint_EAsisten_Guru.pdf.
Alur utama: INPUT GURU → CONTEXT ENGINE → AI GENERATION → VALIDATION → DOCUMENT WORKSPACE → EDIT & REVIEW → AUTOSAVE → EXPORT.
Prinsip produk: AI mempercepat pekerjaan guru, guru tetap menjadi otoritas akhir atas isi
dokumen. Lihat 31 — PRINSIP ARSITEKTUR YANG DIKUNCI di blueprint untuk prinsip non-negotiable.
Fondasi MVP (Fase 1–5 blueprint) sudah berjalan end-to-end:
window.print()).Fase 6 (Expansion — template authoring, dependency engine lanjutan) belum diimplementasikan; halaman Template saat ini hanya menampilkan daftar (read-only) sesuai prinsip Progressive Disclosure — tidak berpura-pura ada fitur yang belum benar-benar ada.
npm install.env.example ke .env.local dan isi:
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY dari
project Supabase Anda.AI_PROVIDER=mock untuk mencoba seluruh alur (wizard → generate → editor → export) tanpa
API key AI apa pun — adapter mock bersifat deterministik dan tidak pernah mengarang data
(lihat lib/ai/adapters/mock.ts), tapi outputnya hanya menampilkan ulang data form, bukan
dokumen tersusun AI. Untuk generation sungguhan, set AI_PROVIDER=gemini +
GEMINI_API_KEY (gratis, tanpa kartu kredit, ambil di
aistudio.google.com/apikey), atau openai/anthropic
beserta API key-nya (berbayar).supabase/migrations/ pada project Supabase Anda (lewat Supabase CLI atau
SQL editor), lalu aktifkan Google sebagai provider di Supabase Auth.npm run dev lalu buka http://localhost:3000.Perintah lain: npm run build, npm run lint, npm run typecheck.
Mengikuti 28 — FOLDER STRUCTURE pada blueprint:
app/ — halaman & route (App Router). app/(auth) untuk login, app/(app) untuk halaman yang
memerlukan sesi (dibungkus AppShell), app/api untuk route handlers.components/ — komponen UI & workflow (ui/ = design system primitives, wizard/,
workspace/, generation/, dashboard/, layout/).lib/ — business logic: supabase/, ai/ (Provider → Adapter → Prompt Engine → Generation
Service), prompts/, context/, validation/, documents/, generation/ (orchestrator),
export/.modules/ — 7 modul dokumen (modul-ajar, lkpd, asesmen, rubrik, bahan-ajar,
kisi-kisi, remedial-pengayaan), masing-masing modular & independen sesuai section 12.types/, schemas/, config/ — kontrak data (TypeScript types, Zod schemas) dan konfigurasi
(AI provider, retention, presets).supabase/migrations/ — skema database + Row Level Security.Business logic sengaja tidak diletakkan di komponen React — komponen hanya memanggil lib/* dan
app/api/*.
AI_PROVIDER di .env.local memilih adapter di lib/ai/provider.ts. Menambah provider baru =
menambah satu file di lib/ai/adapters/ yang mengimplementasikan ModelAdapter — tidak ada
business logic lain (prompt engine, validator, orchestrator) yang perlu diubah, sesuai section 06.
Semua tabel memakai Row Level Security (owner_id = auth.uid()), API key AI hanya dibaca di
server (lib/ai/adapters/*, tidak pernah diekspos ke client), payload divalidasi dengan Zod di
setiap route, dan HTML hasil AI disanitasi (lib/validation/content-validator.ts) sebelum
disimpan atau dirender.