DRSIS adalah Sistem Informasi Sekolah berbasis Next.js App Router, Prisma, PostgreSQL, NextAuth JWT RBAC, Tailwind v4, React Query, dan integrasi S3/MinIO.
- Next.js 15 (App Router + Turbopack)
- TypeScript
- Prisma + PostgreSQL
- NextAuth (Credentials, JWT)
- Tailwind CSS v4
- React Query
- Playwright (E2E smoke tests)
- Node.js 18+
- PostgreSQL 16 lokal aktif di
localhost:5432 - Docker (opsional, untuk MinIO)
cp .env.example .env
npm install
# opsional: jalankan MinIO via Docker
npm run db:up
npm run db:generate
npm run db:migrate
npm run db:seed
npm run devBuka http://localhost:3000.
- Wajib:
NEXTAUTH_URL,NEXTAUTH_SECRETDATABASE_URLS3_ENDPOINT,S3_REGION,S3_ACCESS_KEY,S3_SECRET_KEY,S3_BUCKET
- Direkomendasikan:
E2E_DATABASE_URL(agar Playwright tidak salah target DB)CRON_SECRET,OUTBOX_MAX_ATTEMPTS
- Opsional:
WA_PROVIDERSMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASS,SMTP_FROMHR_TOLERANCE_MINUTES,HR_CORE_START,HR_CORE_ENDQR_PROVIDER_URLSEED_ADMIN_EMAIL,SEED_ADMIN_PASSWORD
- Email:
admin@sis.local - Password:
admin123
PostgreSQL adalah database utama. Default koneksi lokal:
DATABASE_URL=postgresql://sis:sis@127.0.0.1:5432/sis?schema=publicJika PostgreSQL system service belum punya database/user sis, buat dengan akun admin PostgreSQL:
sudo -u postgres psql
CREATE ROLE sis LOGIN PASSWORD 'sis';
CREATE DATABASE sis OWNER sis;
\qDocker PostgreSQL tetap tersedia sebagai fallback dev/e2e:
npm run db:up:docker
# lalu pakai port Docker fallback:
DATABASE_URL=postgresql://sis:sis@127.0.0.1:5433/sis?schema=publicMariaDB hanya disimpan sebagai legacy compatibility dan tidak menjadi runtime default.
- PostgreSQL system service:
localhost:5432(mengikutiDATABASE_URLdi.env) - PostgreSQL Docker fallback:
localhost:5433 - MinIO API:
localhost:9000 - MinIO Console:
localhost:9001- user:
minioadmin - password:
minioadmin
- user:
npm run dev- jalankan development servernpm run build- build productionnpm run start- jalankan hasil buildnpm run lint- jalankan ESLintnpm run db:up- nyalakan MinIO via Dockernpm run db:up:docker- nyalakan PostgreSQL Docker fallback + MinIOnpm run db:down- matikan MinIO Dockernpm run db:e2e:up- nyalakan PostgreSQL E2E di port5433npm run db:e2e:down- matikan PostgreSQL E2Enpm run db:generate- generate Prisma Clientnpm run db:migrate- jalankan migration developmentnpm run db:push- sinkronkan schema ke database tanpa migration barunpm run db:seed- seed role, permission, dan adminnpm run openapi:gen- generateopenapi/openapi.jsonnpm run test:e2e- jalankan Playwright tests
Catatan E2E:
- Playwright default memakai
E2E_DATABASE_URL, fallback keDATABASE_URL(default PostgreSQL port5433untuk E2E Docker). - Pastikan DB target untuk E2E boleh ditulis (karena
prisma db push+ seed berjalan saat setup test).
Dokumentasi perombakan dan arah pengembangan utama:
SCHOOL_ERP_MASTER_PLAN.md- visi produk, current-state, dan target architectureSCHOOL_ERP_ROADMAP.md- roadmap bertahapSCHOOL_ERP_MODULES.md- matrix domain/modul dan gapSCHOOL_ERP_TECHNICAL_STANDARDS.md- standar teknis implementasiSCHOOL_ERP_AUDIT_QA_PLAN.md- checklist audit, QA, dan release gateTODO.md- checklist aktif pembangunan sistem, diturunkan dari dokumen plan di atas
.
├── docs/ # dokumentasi operasional, arsip, dan referensi
├── prisma/ # schema + seed
├── public/ # static assets
├── src/
│ ├── app/ # pages/routes (App Router)
│ ├── components/ # UI components
│ ├── lib/ # helper, auth, prisma, service utils
│ ├── middleware/ # RBAC helper middleware
│ ├── server/ # service/domain layer server-side
│ └── types/ # shared types
├── tests/ # Playwright tests
├── middleware.ts # Next.js middleware entry
├── next.config.ts # Next.js config
├── docker-compose.yml # PostgreSQL fallback + MinIO + MariaDB legacy profile
├── TODO.md # checklist aktif pembangunan
└── package.json # scripts & dependencies
- Theming:
docs/THEMING.md - Notifications:
docs/NOTIFICATIONS.md - Backup & restore:
docs/BACKUP.md - Dapodik:
docs/DAPODIK.md - Referensi awal:
docs/reference/School_ERP_Architecture_Plan.docx - Checklist historis:
docs/archive/TODO_HISTORY.md