Logo Lanfrica

orinoninfo-pixel/lms_zimbabwe

Domaine:

education

Type de record:

softwareproject
Créateur:
ori
Hôte:
Online Learning Management Solution For Zimbabwe # Dzidza Hub LMS Dzidza Hub is a full-stack learning platform for Zimbabwean students, instructors, internal content managers, and administrators. It combines a course marketplace, Zimbabwe Learning Hub subject subscriptions, secure Paynow checkout, certificates, instructor operations, and a public Free Learning tutorial area. ## Stack - Next.js 16 App Router, React 19, TypeScript, Tailwind CSS 4 - PostgreSQL with Prisma 7 and the `pg` adapter - Database-backed, hashed-token sessions and server-side RBAC - Paynow payments verified server-to-server - S3-compatible object storage for course and tutorial images - Node test runner and Playwright ## Local setup 1. Install Node.js 20 or newer and PostgreSQL. 2. Copy `.env.example` to `.env.local` and supply local values. 3. Install dependencies with `npm install`. 4. Apply migrations with `npm run db:migrate:deploy`. 5. Seed development content with `npm run db:seed`. 6. Start the app with `npm run dev`. Never point test commands at development or production data. `npm run test:db:prepare` refuses to reset a database unless its database name or schema contains `test`. ## Quality gates ```bash npm run lint npm run typecheck npm run test:unit npm run test:e2e:safe npm run build npm run db:generate npx prisma validate ``` Install the browser once with `npx playwright install chromium`. E2E payment checks use the guarded Paynow mock only when `E2E_TEST_MODE=1`, `PAYNOW_TEST_MODE=mock`, and the database URL is unmistakably a test database. They never contact Paynow. ## Production configuration Set every required value from `.env.example`. Production startup validates the database URL, HTTPS application URL, and Paynow credentials. Configure an S3-compatible bucket; local disk is intentionally not used for durable uploads. PostgreSQL TLS certificate verification is enabled in production and can use `DATABASE_CA_CERT` for a private CA. Deploy schema changes with `npm run db:migrate:deploy` before starting the new app …