TutorLoom
기업·대학·교육기관을 위한 학습 플랫폼, 무료 오픈소스이며 엔터프라이즈 버전 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Study platform for Computer Science students of the Faculty of Science, Lebanese University (Hadath).
See CLAUDE.md for product context, scope and engineering rules.
See docs/dependencies.md for what each dependency is and why the project has it.
cp .env.example .env
docker compose up -d --wait # Postgres on localhost:5432
npm install
npm run db:migrate
npm run dev # http://localhost:3000
Check it works: open http://localhost:3000 and http://localhost:3000/api/health
(expects {"status":"ok","database":"up"}).
npm run lint
npm run typecheck
npm test # unit tests (Vitest)
npm run test:e2e # browser smoke tests (Playwright); needs the database running
First time only: npx playwright install chromium.
npm run db:migration:create -- add-courses # new file in db/migrations
npm run db:migrate
npm run db:migrate:undo # reverts the last migration
npm run db:migrate:status
Every schema change is a migration. Migrations are plain CommonJS files in db/migrations,
and each must implement a working down. Set DATABASE_SSL=true for hosted databases such as Neon.
Create a separate, gitignored file .env.neon next to .env, once, with two lines:
DATABASE_URL=<Neon direct connection string, not the "-pooler" one>
DATABASE_SSL=true
Then look first, and migrate:
npm run db:migrate:status:neon
npm run db:migrate:neon
These scripts read only .env.neon, never .env, and fail immediately if the file is missing.
.env.production or .env.local: Next.js loads those automatically.export DATABASE_URL in your terminal. A variable already set in the shell takes
precedence over any env file, so both the local and the Neon scripts would use it.npm run db:seed # runs all seeders; safe to run repeatedly
npm run db:seed:undo # removes what the seeders created
SEED_DEMO_DATA=true (in .env) enables the fake demo courses, resources and demo student
([email protected]). Local development only; never set it in production..storage locally, or into the R2 bucket when STORAGE_DRIVER=r2. npm run db:seed:undo
deletes them again. Needs Node 22.18+. Set STORAGE_DRIVER=local to keep seeding off R2.ADMIN_EMAIL and ADMIN_PASSWORD (12+ characters)
when running npm run db:seed. Running it again with the same email updates the password.npm test needs Docker Postgres running (docker compose up -d --wait). It uses a separate
database (TEST_DATABASE_URL, name must end in _test), created and migrated automatically,
so development data is never touched.
All configuration comes from environment variables, validated at startup in src/lib/env.ts.
See .env.example. Never commit .env.