ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Role-based online education, mock-exam, CRM, and business operations platform built with Next.js and Prisma.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A role-based education and business operations platform that connects sales, learning delivery, assessment, and operational reporting in one product.
Administrator, teacher, student, and parent experiences have separate navigation and horizontal access controls. Panel accounts are created by administrators; public self-registration is not available. Business access is granted independently from platform roles through BusinessRoleAssignment.查看完整 README ↗A role-based education and business operations platform that connects sales, learning delivery, assessment, and operational reporting in one product.
Live website · Report a bug · Request a feature
| Area | Scope |
|---|---|
| Online Dershanem | Lessons, assignments, materials, progress tracking, and parent visibility |
| Online Deneme Kulübü | Mock exams, secure exam delivery, and learning-outcome analysis |
| Business Panel | Instagram CRM, lead pipeline, advertising performance, and shared finance ledger |
Administrator, teacher, student, and parent experiences have separate navigation and horizontal access controls. Panel accounts are created by administrators; public self-registration is not available. Business access is granted independently from platform roles through BusinessRoleAssignment.
Requirements: Node.js 22+, npm 10+, and PostgreSQL.
git clone https://github.com/TerekliTahaBerk/online-dershanem.git
cd online-dershanem
npm ci # also generates the Prisma Client (postinstall)
cp .env.example .env.local
npm run prisma:deploy
npm run db:seed
npm run dev
The application starts at http://localhost:3000 by default. .env.example documents safe placeholders and opt-in integration settings. Never commit real credentials.
npm run lint
npm run lint:hygiene
npm run typecheck
npm run test:unit
npm run test:integration
npm run build
npm run e2e
Integration tests require DATABASE_URL; the relevant tests are skipped when it is not set.
npm run test:unit:coverage runs the unit suite with coverage for lib/ and writes coverage/lcov.info. CI runs this variant and fails when line, branch, or function coverage drops below the thresholds in package.json.
Panel E2E specs log in with seeded test accounts read from environment variables. The full list lives in tests/e2e/env-requirements.ts. Locally, specs whose variables are missing are skipped, so a green run without them does not exercise the panel. In CI, scripts/check-e2e-env.ts runs before Playwright and fails the job if any are missing.
To run them locally, seed the E2E database (npx tsx prisma/seed-e2e.ts) and export the values used by .github/workflows/e2e.yml:
export [email protected] PANEL_E2E_ADMIN_PASSWORD=testpass123
export [email protected] PANEL_E2E_TEACHER_PASSWORD=testpass123
export [email protected] PANEL_E2E_STUDENT_PASSWORD=testpass123
export [email protected] PANEL_E2E_PARENT_PASSWORD=testpass123
export [email protected] PANEL_E2E_ODK_STUDENT_PASSWORD=testpass123
export PANEL_E2E_FOREIGN_STUDENT_ID=e2e-student-profile-foreign PANEL_E2E_FOREIGN_LESSON_ID=e2e-lesson-foreign
node --import tsx scripts/check-e2e-env.ts # confirms nothing will be skipped
The server also needs the rest of that workflow's env: block (for example PANEL_ENABLED and the PANEL_FEATURE_* flags), otherwise panel specs fail rather than skip.
To run the Chromium, Firefox, and WebKit panel acceptance suite (tests/e2e/panel-cross-browser.spec.ts; the Cross-browser Panel workflow runs it weekly and on demand, on Linux with --with-deps):
npx playwright install chromium firefox webkit
npm run e2e:cross-browser
Next 16 no longer prints per-route JS sizes in the build summary. npm run build:analyze builds and prints the ten heaviest routes by first-load JS (raw and gzip), read from .next/diagnostics/route-bundle-stats.json. Add --max-gzip-kb <n> to scripts/report-route-bundles.mjs to fail when a route exceeds a budget. For an interactive module treemap with import chains, use npm run analyze:bundle (Turbopack; @next/bundle-analyzer only supports Webpack).
Apply only versioned migrations to an existing or production database:
npm run release:migrate
Bootstrap a completely empty database safely with:
ALLOW_FRESH_DB_BOOTSTRAP=true npm run db:bootstrap:fresh
The bootstrap command applies every versioned migration as SQL, including partial indexes and CHECK constraints that Prisma's schema language cannot represent. It refuses non-empty databases without Prisma migration history and is idempotent for a database it already bootstrapped. Run npm run db:verify:fresh after bootstrap to verify the critical unique indexes (scripts/verify-fresh-db-integrity.mjs). The Fresh database bootstrap CI job runs this on every pull request to main or test against an empty PostgreSQL 16 database, together with prisma migrate status, core table and business-unit seed checks, and a second bootstrap for idempotency. It checks named critical indexes, not every CHECK constraint. The Prisma data model is split by domain under prisma/schema/; see the data-model ownership guide. See the panel operations guide and deployment checklist for environment variables, email policy, backup restoration, and production acceptance.
Releases use v*.*.* tags. A tag push runs the release quality gate, publishes a GitHub Release, and builds a versioned container. Notable changes are maintained in CHANGELOG.md.
Every semantic version is published to GitHub Container Registry with version, major-minor, and latest tags. Package access follows the repository owner's GitHub Packages visibility settings.
docker pull ghcr.io/tereklitahaberk/online-dershanem:latest
docker run --env-file .env.local -p 3000:3000 ghcr.io/tereklitahaberk/online-dershanem:latest
Database migrations do not run automatically when the container starts. Run npm run release:migrate before a production deployment.
Every deployed artifact reports its own identity, so production can be matched against main without guessing:
curl -sI https://www.onlinedershanem.com/ | grep x-build # response headers
curl -s https://www.onlinedershanem.com/api/version # full build identity
npm run verify:production-version # compare against main's tip
The same version and short SHA are stamped in the site footer. See build provenance.
Read CONTRIBUTING.md before submitting a change. Do not disclose sensitive vulnerabilities in public issues; follow SECURITY.md instead.
This repository is not open source. All rights to the source code are reserved. See LICENSE for use and distribution terms.