Memastikan administrator sistem/tim teknis dapat menyiapkan satu deployment (satu penerapan) aplikasi Contact Page untuk satu sekolah/yayasan Yayasan Penyelenggaraan Ilahi Indonesia (YPII), mencakup daftar unit sekolah, identitas situs, warna merek, kunci captcha, koneksi ke Odoo, dan analitik opsional — sehingga formulir pendaftaran calon siswa tampil benar dan data pendaftaran benar-benar sampai ke Odoo.
Contact Page adalah aplikasi web publik satu halaman, tanpa login, yang dijalankan sebagai image Docker melalui Docker Compose. Satu deployment (satu image Docker beserta satu berkas konfigurasi unit sekolah dan satu set variabel lingkungan) melayani satu sekolah/yayasan dengan daftar unit dan warna mereknya sendiri.
config/schools.json.example dari repositori cakrawala-tumbuh/contact-page sebagai dasar berkas daftar unit sekolah.SCHOOL_UNITS berisi daftar dipisah koma (cadangan). Bila keduanya diisi, berkas JSON yang dipakai.config/schools.json.example dari repositori menjadi berkas konfigurasi baru, isi dengan daftar unit sekolah milik deployment ini, lalu tempatkan pada path yang ditunjuk variabel SCHOOL_UNITS_FILE (default /app/config/schools.json di dalam container). Berkas config/schools.json yang sesungguhnya tidak ikut ter-commit ke repositori, sehingga harus dibuat sendiri per deployment.SCHOOL_UNITS dengan daftar nama unit sekolah dipisah koma.Nama unit sekolah pada daftar ini harus cocok persis dengan nama record sekolah yang terdaftar di Odoo. Bila tidak cocok, pendaftaran yang masuk tetap tercatat sebagai
crm.leadtetapi tanpa sekolah/tim/penanggung jawab/unit operasi terisi otomatis.
SITE_TITLE untuk judul tab peramban dan SITE_HEADING untuk heading halaman formulir. Bila tidak diisi, keduanya tampil sebagai "Formulir Pendaftaran".SITE_TAGLINE untuk paragraf pengantar di bawah heading. Bila tidak diisi, tampil sebagai "Isi data calon siswa berikut untuk memulai proses pendaftaran."SITE_DESCRIPTION dan SITE_SHORT_NAME sesuai kebutuhan identitas situs dan manifest PWA (Progressive Web App) deployment ini.BRAND_COLOR dengan kode warna heksadesimal format #RRGGBB. Bila tidak diisi, warna merek default adalah #1d4ed8. Nilai ini disuntikkan sebagai CSS variable --brand dan memengaruhi warna tombol serta pesan sukses pada formulir.CAPTCHA_SECRET dengan nilai rahasia yang unik untuk deployment ini. Variabel ini wajib diisi.Bila
CAPTCHA_SECRETkosong, seluruh pengiriman formulir pada deployment ini akan selalu berakhir dengan pesan gagal "Terjadi kesalahan saat mengirim formulir. Silakan coba lagi." — tidak ada satu pun pendaftaran yang dapat berhasil dikirim sampai variabel ini diisi.
ODOO_API_URL dengan alamat dasar instance Odoo tujuan, ODOO_API_DB dengan nama database Odoo, dan ODOO_API_AUTH dengan kredensial autentikasi yang dipakai memanggil API Odoo. Ketiga variabel ini wajib diisi agar data pendaftaran benar-benar sampai ke Odoo.ODOO_CONTACT_PATH bila endpoint kustom di Odoo tidak memakai path default school/lead/contact.POST {ODOO_API_URL}/api/v1/custom/{ODOO_CONTACT_PATH}?db={ODOO_API_DB}, dapat diakses dari server tempat deployment Contact Page berjalan.ANALYTICS_MATOMO_URL dengan alamat instance Matomo dan ANALYTICS_MATOMO_SITE_ID dengan Site ID yang sesuai.Bila salah satu dari
ANALYTICS_MATOMO_URLatauANALYTICS_MATOMO_SITE_IDkosong atau tidak sah, skrip pelacak Matomo tidak dipasang sama sekali dan formulir pendaftaran tetap berfungsi normal — kegagalan konfigurasi analitik tidak mengganggu proses pendaftaran.
SITE_TITLE/SITE_HEADING yang diisi pada Langkah 2.BRAND_COLOR yang diisi pada Langkah 2.crm.lead uji tersebut benar-benar tercatat di Odoo.res.partner) dan crm.lead baru.| Pesan/Masalah | Penyebab | Penanganan |
|---|---|---|
| Dropdown "Unit sekolah yang dituju" kosong dan tombol "Kirim Pendaftaran" nonaktif, disertai pesan "Daftar unit sekolah belum dikonfigurasi. Silakan hubungi admin." | Berkas SCHOOL_UNITS_FILE maupun variabel SCHOOL_UNITS sama-sama kosong atau tidak valid |
Lengkapi salah satu sumber daftar unit sekolah sesuai Langkah 1, lalu jalankan ulang (restart) container |
Heading halaman tetap tampil "Formulir Pendaftaran" walau SITE_HEADING sudah diisi |
Variabel lingkungan belum diterapkan karena container belum dijalankan ulang, atau nama variabel salah ketik | Periksa ejaan variabel, simpan ulang, lalu jalankan ulang (restart) container |
Warna tombol dan elemen bermerek tidak berubah walau BRAND_COLOR sudah diisi |
Nilai BRAND_COLOR tidak berformat heksadesimal #RRGGBB yang sah, atau container belum dijalankan ulang |
Perbaiki format nilai menjadi #RRGGBB, lalu jalankan ulang (restart) container |
| Seluruh pengiriman formulir pendaftaran berakhir dengan pesan "Terjadi kesalahan saat mengirim formulir. Silakan coba lagi." untuk semua pengunjung | CAPTCHA_SECRET kosong, atau salah satu dari ODOO_API_URL/ODOO_API_DB/ODOO_API_AUTH kosong/salah sehingga Odoo tidak dapat dihubungi |
Lengkapi CAPTCHA_SECRET sesuai Langkah 3, dan pastikan ketiga variabel koneksi Odoo terisi benar sesuai Langkah 4, lalu jalankan ulang (restart) container |
Formulir terkirim sukses tetapi crm.lead yang terbentuk di Odoo tidak memiliki sekolah/tim/penanggung jawab/unit operasi terisi |
Nama unit sekolah yang dipilih pengguna pada dropdown tidak cocok persis dengan nama record sekolah yang terdaftar di Odoo | Samakan nama unit sekolah pada daftar konfigurasi (Langkah 1) dengan nama record sekolah di Odoo, lalu uji ulang pengiriman |
| Skrip pelacak Matomo tidak terpasang pada halaman, atau tidak ada data kunjungan yang tercatat di Matomo | ANALYTICS_MATOMO_URL atau ANALYTICS_MATOMO_SITE_ID kosong atau tidak sah |
Lengkapi kedua variabel sesuai Langkah 5 dengan alamat instance dan Site ID yang benar, lalu jalankan ulang (restart) container |