ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
LGS ve YKS öğrencileri için Online Dershanem, Online Koçum ve Online Deneme Kulübüm ürünlerini keşfedin.
Translation pending
EducationTypeScript · PLpgSQLGitHub @TerekliTahaBerkOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
Role-based online education, mock-exam, CRM, and business operations platform built with Next.js and Prisma.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.