feat: inital commit project

This commit is contained in:
2026-09-18 19:30:05 +07:00
commit b2208afcb6
19 changed files with 3519 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
# E-recruitment
Web sederhana untuk manajemen rekrutmen karyawan: data pelamar, status rekrutmen,
berkas (CV, hasil test, portofolio), dan kirim WhatsApp memakai template pesan formal —
termasuk reminder jadwal interview.
Aplikasi ini **murni HTML + CSS + JavaScript** (tanpa backend, tanpa build tool).
Cukup buka `index.html` di browser.
## Cara Pakai
1. Buka `index.html` di browser (Chrome/Edge/Firefox).
2. Klik **+ Tambah Pelamar**, isi data, simpan.
3. Klik **Reminder Pelamar** untuk mengirim reminder jadwal interview ke pelamar
(atau **Reminder Pewawancara** dari modal Detail untuk mengingatkan pewawancara).
4. Atur nama HR & perusahaan di **Pengaturan**.
5. Edit template pesan di **Template Pesan**.
6. **Export** data secara berkala sebagai cadangan (file JSON).
## Halaman
| Halaman | Fungsi |
|---|---|
| `index.html` | Daftar pelamar, ringkasan, form, detail, reminder, berkas |
| `template.html` | Kelola template pesan WhatsApp |
| `berkas.html` | Lihat semua berkas pelamar |
| `pengaturan.html` | Data perusahaan/HR, status, export/import/reset |
## Status Rekrutmen
Baru → Screening → Interview → Diterima / Ditolak / GagalTidak Melanjutkan.
Status bisa diubah/ditambah di halaman Pengaturan.
## Berkas (CV / Hasil Test / Portofolio)
Dikelola di halaman **Berkas** (juga tersedia di modal **Detail** pelamar):
1. Klik **Upload** → pilih file (PDF/DOC/gambar, maks. 5 MB), atau
2. Klik **Link** → tempel URL (Google Drive, dll).
3. **Lihat** untuk membuka, **Hapus** untuk membuang.
Penyimpanan: **IndexedDB**. Jika IndexedDB diblokir (mis. dibuka via `file://`),
berkas otomatis disimpan di localStorage sebagai base64 dengan batas 2 MB per file.
## Reminder
Ada dua tombol reminder (keduanya berisi preview sebelum dikirim):
- **Reminder Pelamar** — dikirim ke nomor pelamar (tombol di tabel & modal Detail).
- **Reminder Pewawancara** — dikirim ke nomor pewawancara (tombol di modal Detail).
### Menyiapkan Reminder Pewawancara
1. Isi **Nama pewawancara** dan **No. WA pewawancara** saat menambah/mengedit pelamar.
2. Buka **Detail** pelamar → klik **Reminder Pewawancara**.
3. Pilih template jenis *Reminder Interview (Pewawancara)* → pesan berisi data
kandidat + jadwal akan terbuka di WhatsApp pewawancara.
Untuk mengubah isi pesan reminder, edit template di menu **Template Pesan**.
## Export & Import Excel
Data pelamar bisa di-export ke **.xlsx** dan di-import kembali dari **.xlsx / .xls / .csv**.
- **Export Excel** — tombol di toolbar halaman Pelamar, atau di Pengaturan.
- **Import Excel** — pilih file; baris dengan Nama & No WhatsApp valid akan ditambahkan.
Baris tidak valid dilewati dan dilaporkan.
- **Unduh Template Excel** — tombol di halaman Pengaturan untuk format kolom yang benar.
Kolom yang didukung: `Nama`, `No WhatsApp`, `Email`, `Posisi`, `Status`, `Sumber`,
`Domisili`, `Gaji Ekspektasi`, `Tanggal Melamar`, `Catatan`, `Tanggal Interview`,
`Jam Interview`, `Metode`, `Lokasi/Link`, `Pewawancara`, `No WA Pewawancara`.
Nama kolom tidak harus persis — ada alias (mis. `No HP`, `No WA`).
Catatan tanggal: format `YYYY-MM-DD` paling aman; format `dd/mm/yyyy` juga dikenali.
## Placeholder Template
`{{nama}}`, `{{posisi}}`, `{{perusahaan}}`, `{{status}}`, `{{tanggal}}`, `{{hari}}`,
`{{jam}}`, `{{metode}}`, `{{lokasi}}`, `{{pewawancara}}`, `{{hr}}`, `{{jabatan_hr}}`
## Penyimpanan Data
- Data utama: **localStorage** browser.
- Berkas upload: **IndexedDB** (maks. 5 MB per file; fallback localStorage 2 MB).
- Backup: **Export/Import JSON** (lengkap, termasuk berkas) atau **Export/Import Excel** (data pelamar saja).
> Data tersimpan di browser. Bersihkan cache berisiko menghapus data — selalu
> lakukan **Export** berkala, atau buka lewat server lokal agar konsisten.
## Menjalankan via server lokal (opsional, disarankan)
```bash
# Python
python -m http.server 8000
# Node
npx serve .
```
Lalu buka `http://localhost:8000`.
Dokumen spesifikasi lengkap ada di `agen.md`.