Modern Tech Stack
Pengembangan Web & Aplikasi
Yang dibangun
SPRINT35 adalah campaign spesial 35 tahun Inixindo yang menggabungkan landing page promosi dengan sistem pendaftaran peserta dalam satu alur. Dalam proyek ini, saya berperan sebagai Junior Web Developer dan mengerjakan implementasi mulai dari halaman campaign, detail training, form registrasi bertahap, validasi data, hingga dashboard pengelolaan submission.
Sistem dirancang agar peserta bisa memahami program, memilih training, lalu mendaftar melalui alur yang sederhana dan tetap nyaman digunakan di mobile. Di sisi operasional, data pendaftaran dapat ditinjau, difilter, diperbarui statusnya, diekspor, dan dilanjutkan ke proses RSVP setelah pendaftaran selesai.
Landing page tidak boleh berhenti sebagai halaman promosi.
Pengunjung yang tertarik perlu langsung memahami apa programnya, training apa saja yang tersedia, bagaimana mekanismenya, dan apa yang harus dilakukan untuk mendaftar.
Karena itu, alur halaman dibuat dari campaign → training offer → registration form → confirmation, sehingga setiap langkah mempunyai konteks yang jelas.
SPRINT35 memiliki registration window yang sangat pendek.
Countdown di browser saja tidak cukup karena halaman lama masih bisa terbuka atau request bisa dikirim tanpa melalui tampilan normal.
Status pendaftaran karena itu juga diperiksa di sisi server. Sistem membedakan kondisi sebelum pendaftaran dibuka, saat pendaftaran aktif, dan setelah periode berakhir.
Setiap training mempunyai materi, jadwal, dan konteks penyelenggaraan yang berbeda.
Daripada meminta peserta memilih training melalui identifier atau input bebas di dalam form, registrasi langsung dihubungkan dengan offer yang sedang mereka buka.
Pendekatan ini membuat pengalaman lebih sederhana bagi peserta sekaligus menjaga data submission lebih konsisten.
Informasi yang dibutuhkan untuk proses registrasi cukup banyak jika ditampilkan dalam satu halaman.
Form kemudian dibagi menjadi tujuh tahap dengan progress indicator, conditional fields, validasi, dan halaman review sebelum submission.
Hasilnya, peserta tetap dapat mengisi data secara bertahap tanpa menghadapi satu halaman form yang terasa seperti formulir pajak tahunan.
Data registrasi digunakan lagi untuk proses operasional setelah campaign selesai.
Karena itu, sistem tidak hanya menyimpan input form, tetapi juga menangani normalisasi data, validasi server, duplicate prevention, nomor registrasi, status submission, dan penyimpanan file secara privat.
Pendaftaran bukan akhir dari workflow.
Tim internal masih perlu mencari peserta, melihat detail submission, mengelompokkan data berdasarkan training atau status, melakukan update, mengekspor data, dan menangani proses RSVP.
Karena itu, sisi operasional juga menjadi bagian penting dari implementasi campaign ini.
Saya membagi implementasi SPRINT35 menjadi dua sisi utama: public campaign experience dan registration operations.
Pada sisi publik, landing page disusun agar informasi terpenting bisa dipahami dengan cepat. Pengunjung mendapatkan gambaran program, periode pendaftaran, pilihan training, mekanisme, timeline, ketentuan, dan FAQ sebelum masuk ke proses registrasi.
Setiap training mempunyai halaman offer sendiri. Halaman ini memberikan konteks yang lebih spesifik sebelum pengguna membuka form sehingga peserta sudah mengetahui program yang mereka pilih.
Form registrasi kemudian dibuat dalam tujuh tahap. JavaScript digunakan untuk membantu perpindahan step, progress, conditional field, preview, dan feedback awal, sementara server tetap menjadi sumber validasi utama sebelum submission diterima.
Di backend, campaign, training offer, dan registration dipisahkan sebagai data yang saling berelasi. Submission divalidasi dan dinormalisasi sebelum disimpan. Sistem juga mengecek periode campaign dan potensi duplikasi sehingga aturan registrasi tidak hanya bergantung pada tampilan frontend.
File persyaratan ditempatkan pada private storage, sementara submission mendapatkan nomor registrasi dan status yang dapat digunakan pada proses selanjutnya. Setelah berhasil, peserta diarahkan ke halaman konfirmasi dan mendapatkan email penerimaan registrasi.
Untuk kebutuhan internal, saya juga membangun workflow pengelolaan submission agar tim dapat mencari, memfilter, meninjau, memperbarui status, dan mengekspor data tanpa harus mengolah hasil form secara manual.
Workflow RSVP dibuat terpisah sebagai proses setelah pendaftaran, sehingga respons kehadiran peserta dapat dicatat dan ditelusuri kembali.
Dari sisi quality assurance, flow utama diuji melalui automated feature tests yang mencakup public pages, registration, validation failure, registration deadline, duplicate prevention, authorization, export, dan RSVP.
SPRINT35 memiliki satu alur digital yang menghubungkan informasi campaign dengan proses pendaftaran.
Pengunjung dapat memahami program, melihat pilihan training, membaca detailnya, kemudian masuk ke form yang sesuai tanpa berpindah ke workflow yang terpisah.
Campaign juga tidak berhenti ketika peserta menekan tombol submit. Data yang masuk sudah memiliki struktur untuk mendukung proses review, pengelompokan, update status, export, hingga RSVP.
Campaign, training offer, dan registration dipisahkan sebagai domain yang saling terhubung sehingga konten program tidak bercampur langsung dengan data peserta.
Registration deadline diterapkan pada frontend dan server, sementara duplicate submission dijaga melalui validasi aplikasi dan constraint data.
Submission dan file juga ditangani dengan mekanisme yang menjaga konsistensi ketika proses gagal.
Modul campaign memiliki automated feature tests yang mencakup alur publik maupun operasional, termasuk registration flow, validation, deadline, duplicate prevention, admin access, export, dan RSVP.
Peserta dapat memulai dari landing page, memilih training, membaca detail program, dan masuk ke form yang sudah membawa konteks training tersebut.
Form tujuh langkah membantu memecah informasi yang cukup banyak menjadi proses yang lebih mudah diikuti.
Progress indicator, validation feedback, review sebelum submission, dan responsive layout juga membantu menjaga pengalaman tetap nyaman ketika registrasi dilakukan dari perangkat mobile.
Tim internal dapat melihat dan menindaklanjuti submission dari satu workflow.
Data dapat dicari dan difilter berdasarkan kebutuhan, detail peserta dapat ditinjau, status dapat diperbarui, hasil dapat diekspor, dan RSVP dapat dicatat sebagai bagian dari proses lanjutan.
Nomor registrasi dan email konfirmasi juga memberikan referensi yang jelas bagi peserta setelah submission berhasil.
SPRINT35 merupakan campaign dalam rangka 35 tahun Inixindo yang membuka kesempatan mengikuti program pelatihan dan sertifikasi melalui periode pendaftaran terbatas selama 35 jam.
Tantangannya bukan hanya membuat landing page yang menarik. Traffic dari campaign juga harus diarahkan ke proses pendaftaran yang jelas, mulai dari memahami program, memilih training, membaca detailnya, hingga mengirim data registrasi.
Saya membangun alur tersebut sebagai satu pengalaman yang saling terhubung. Landing page menjadi pusat informasi campaign, sedangkan setiap training memiliki halaman detail sendiri sebelum peserta masuk ke formulir registrasi. Dengan begitu, peserta tidak sekadar melihat daftar training lalu dilempar ke form panjang tanpa konteks.
Form registrasi dibagi menjadi tujuh tahap agar informasi yang cukup banyak tetap lebih nyaman diisi, terutama dari perangkat mobile. Validasi penting tetap dilakukan di server, termasuk periode campaign, kelengkapan data, duplikasi pendaftaran, dan beberapa persyaratan khusus.
Setelah submission berhasil, peserta mendapatkan nomor registrasi dan konfirmasi. Di sisi internal, tim dapat meninjau data pendaftar melalui dashboard, melakukan pencarian dan filter, memperbarui status, mengekspor data, serta mencatat RSVP untuk proses berikutnya.
Saya menangani implementasi campaign dari sisi web dan sistem registrasi, termasuk: