Portal publik untuk pelamar Pendamping & Pengawas Desa
Portal publik untuk pelamar Pendamping Desa: pendaftaran online, pengisian data diri, pemilihan posisi & wilayah, unggah dokumen, serta pemantauan status seleksi (5 tahap) dari sudut pandang pelamar.
users/JWT + data pd_applicants)./api/settings (manajemen); saat "tutup", registrasi & submit pendaftaran ditolak.Backend: Node.js + Express, pg, jsonwebtoken, bcryptjs, multer, uuid, minio, cors, dotenv.
Frontend: React, react-router-dom, axios, Vite, Tailwind CSS.
Upload: Presigned PUT โ browser upload langsung ke MinIO (offload backend). Endpoint lama POST /upload via multer masih tersedia untuk backward compatibility.
Lint: oxlint (npm run lint).
File tidak melewati backend โ browser upload langsung ke MinIO via presigned URL.
| 1. Presign | POST /api/upload/presign โ validasi + generate key + presigned PUT URL (24 jam) |
| 2. Upload | PUT {uploadUrl} โ browser kirim file langsung ke MinIO |
| 3. Confirm | POST /api/upload/confirm โ insert pd_documents + return presigned GET URL |
Endpoint lama POST /api/upload (proxy multerโMinIO) tetap tersedia. PG_POOL_MAX configurable (default 20).
| Backend | PORT 5001 (env saat ini) |
| Frontend | 5174, proxy /api → http://localhost:5001 |
| Database | PostgreSQL "online_test" |
DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME, JWT_SECRET, JWT_EXPIRES, PORTMINIO_ENDPOINT, MINIO_PORT, MINIO_USE_SSL, MINIO_ACCESS_KEY, MINIO_SECRET_KEY, MINIO_BUCKET
Prefix: /api
| Endpoint | Fungsi |
|---|---|
| /api/auth | Registrasi & login pelamar; guard periode tutup pada route register. |
| /api/applicants | CRUD data pendaftaran pelamar (submit, getProgress / me/progress → status 5 tahap). |
| /api/regions | Master wilayah (provinces/regencies/districts/villages) untuk dropdown lokasi. |
| /api/settings/registration | (PUBLIK) Mengambil status buka/tutup gelombang. |
| /api/upload/presign | Generate presigned PUT URL untuk upload langsung ke MinIO. |
| /api/upload/confirm | Konfirmasi upload sukses + simpan metadata ke pd_documents. |
| /api/upload | Unggah dokumen via proxy multerโMinIO (legacy, tetap tersedia). |
| Tabel | Fungsi |
|---|---|
| pd_provinces | Master wilayah (provinsi, kabupaten, kecamatan, desa). |
| pd_regencies | |
| pd_districts | |
| pd_villages | |
| pd_applicants | Data pendaftaran inti + status tiap tahap (status_pendaftaran, status_test_online, status_kelulusan, published_at, keputusan_akhir_at, dst). |
| pd_education | Riwayat pendidikan pelamar. |
| pd_work_experiences | Pengalaman kerja pelamar. |
| pd_documents | File dokumen (user_id link ke tabel users bila ada akun). |
| Password | Keterangan | |
|---|---|---|
| siti.amelia@test.com | Pelamar123 | Pelamar contoh |
manajemen_test_pd; nilai CBT dari test_online. Aplikasi ini membaca status untuk menampilkan progres pelamar.pd_settings.registration) diubah oleh panitia melalui manajemen_test_pd (menu Setup Pendaftaran), dibaca publik oleh aplikasi ini.