Aplikasi khusus penguji wawancara — penguji-only
Aplikasi khusus penguji wawancara. Penguji login di sini untuk melihat jadwal yang ditugaskan dan mengisi penilaian wawancara multi-kriteria. Admin TIDAK bisa login di aplikasi ini (ditolak 403 "Khusus penguji"). Manajemen akun penguji (CRUD, is_active) dilakukan di aplikasi manajemen_test_pd.
penguji1@test.com / penguji2@test.com). Admin ditolak.penguji_id === user.id).manajemen_test_pd (DB sama, tabel sama).wawancara@test.com) telah digabung ke pd_admin di manajemen_test_pd. Kelola akun penguji (CRUD, is_active) dilakukan di Manajemen.
Backend: Node.js + Express, pg, jsonwebtoken, bcryptjs, cors, dotenv.
Frontend: React, react-router-dom, axios, Vite, Tailwind CSS.
Lint: oxlint (npm run lint).
| Backend | PORT 5004 (env saat ini) |
| Frontend | 5177, proxy /api → http://localhost:5004 |
| Database | PostgreSQL "online_test" |
DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME, JWT_SECRET, JWT_EXPIRES, PORT
Prefix: /api · Semua butuh Authorization: Bearer (role penguji)
| Endpoint | Fungsi |
|---|---|
| /api/auth | Login (pd_interview_users role=penguji + is_active) & /me. |
| /api/interviews | List jadwal milik penguji (filter status), detail + ownership, kriteria penilaian, simpan penilaian (ownership guard). |
Sama dengan yang dipakai manajemen_test_pd
| Tabel | Fungsi |
|---|---|
| pd_interview_users | Akun penguji (role=penguji, is_active). Admin role ada di tabel sama tapi login ditolak di app ini. |
| pd_interview_criteria | Kriteria penilaian (is_active, sort_order). |
| pd_interviews | Jadwal wawancara (applicant, penguji, waktu, status, nilai_total, catatan_penguji). |
| pd_interview_scores | Nilai per kriteria per wawancara. |
| Password | Role | Keterangan | |
|---|---|---|---|
| penguji1@test.com | admin123 | penguji | Login di test_wawancara |
| penguji2@test.com | admin123 | penguji | Login di test_wawancara |
wawancara@test.com) ditolak — digabung ke pd_admin di manajemen_test_pd.migrations/migrate_setup.js di manajemen_test_pd).online_test).