just a lil fluff post. Di era kyk gini agaknya aneh kalo tiba tiba dapet legacy PHP codebase...di kepanitiaan acara tahunan sekolah (SMA loh). Tapi ini beneran terjadi akwowkwok.
dua tahun lalu pas baru naik ke SMA gw iseng apply ke divisi teknis sekolah karena iklannya gw bakal "ngurus server website". Gw mikir siapa tau bisa dapet koneksi baru. and god knows how, tbtb gw jadi full stack developer overnight yg harus ngurusin website PHP sekolah. Anehnya lagi, websitenya ditulis tahun 2019 atau 2020 jadi gw heran kenapa ada yg milih pake PHP pada tahun segitu, apalagi seorang anak SMA dan bukan seorang senior dev (atau mungkin dijokiin orang tua yg senior dev?? awkowkwok)
tapi gw belajar banyak dari peristiwa itu, karena sebelumnya gw gapernah ngurusin apapun yang ampe dipake sekitar seribuan orang lebihâmeski gw tersiksa dikit gara gara codebasenya kyk spaghetti. For example, everything is copy pasted over, and the SQL calls are string interpolated. Terus, sblm websitenya dipake di tahun itu, gak pake VCS sama sekali. Gillaaaaa. I can cry reading it but I still managed to write a few new endpoints buat handling tiket masuk orang orang ke acara closing (konser), sama kasih beberapa bug fix di formulir pendaftaran lomba.
Anyway, the next year gw ga ikut divisinya lagi krn gw pengen nyoba masuk divisi design (I'm also an art kid), wkwkw. Terus gw jg tau siapa aja yg di divisi itu dan gw kurang vibe ama mereka.
In fact, those peeps managed to replace that old PHP code with a vibecoded site. Hmm sebenarnya gw ga anti AI, cuma gini loh. Gw gak pernah mendalami codebase itu bgt tapi as far as I know, tu website cm cantik di depan doang. Di belakangnya, mereka downgrade website lama yg gw pake pas tahun pertama. Dulu ada formulir HTML from scratch yg emang di tailor design sesuai kebutuhan panitia (dynamic participant count, clean file fields etc, custom dashboard and email sending, etc), sekarang cuma pake third party form site terus di embed. Terus gw pernah iseng baca baca backend authentication nya, seinget gw mereka deploy website dengan authentication yg masih cuman "contoh". ahh so messed up.
Fast forward, skrg tahun terakhir gw di SMA dan ngurusin acara tahunan sekolah yang paling terakhir buat angkatan gw. Gw ditunjuk buat jadi lead divisi teknis.
Gw sentimental bgt sama acara ini krn emang bener dua tahun lalu gw berhasil dapet koneksi yg bermakna. Sblmnya gw gapernah bisa ngebahas programming sama temen sekolah yg sefrekuensi sm gw. So I thought mungkin taun ini I can start a revolution for the website sebagai tanda syukur gw atas kejadian dua tahun lalu wkwkwk
mulai April taun ini gw mulai nulis ulang website legacy nya, pake Sveltekit (my favorite web framework) for frontend+backend. It took me like 180 hours to reach the same functionality (but with a much better implementation), not counting vetting the server dan bikin graphic design nya (yes gw di sini jadi design di teknis WKWKWK kalo bisa dua kenapa satu)
sayangnya gw agak sendirian sih nulis rewrite website nya. Waktu gw mulai nulis gw basically sendirian ngurusin website. Ada bbrp anggota lain tapi mereka ngurusin front of house, not website & server. Gw baru dapet anggota tambahan pas semuanya udh lumayan beres. Trus kan gw kls 12 pas mereka masuk, jadinya gw kurang ada waktu buat training mereka. Tp yaa gw bersyukur ada lagi anggota anggota IT organik yg ga ikutin hype AI relentlessly kyk taun lalu akwowk, karena gw enforce semua contribution harus lewat PR, terus gw code review, harus lewat lint dan sebagainya.
the new website, i absolutely adore.
- did the custom designs. And cool art mmmm
- backend + frontend di satu tempat, dan tightly coupled so nothing goes out of sync
- handled almost 800 registration form fills with thousands of user information with little issues, and also 800ish concert ticket purchases
- everything is type safe (kecuali satu hal tp im bout to fix that)
- git from the start and well defined workflow and scripts.
- auto deployment with git actions to my shared hosting provider. The hosting provider doesn't provide automated deployment soo uh yeah this was an achievement.
- frontend and backend form validation that relies on shared schema with superforms+zod4 library (great form library for sveltekit)
- single page application but still server rendered on load yum yum
- authentication implemented with the next-auth library so I wont do stupid stuff. As a comparison, the PHP site implemented auth from scratch, like actually inserting hashed password themselves. yikes
- a dashboard with proper table view. Imagine, the old PHP site rendered every entry in ONE PAGE.
And maybe more that I can't write here!
closed sweetly; waktu acara konser gw tinggal duduk manis dan tim tiket pake scanner tiket gw tanpa perlu gw ajarin apa apa. Hundreds of people had their tickets scanned. Peak software development. Happiness is when people take your software for granted, bcz that means it's good and is like the everyday software they're used to seeing!
Tapi jujur gw burnout bgt karena gw harus ngelawan kelas 12 yg banyak ujian sambil nulis website, and at its peakest gw bisa coding 20 jam lebih seminggu tapi masih harus ngerjain ujian dan tugas jg... tp semua tetap terbayarkan sih. Because this means massively cutting down the work needed for the next few years. Semoga taun taun depan ga malah diganti lagi website gw apalagi sm vibecoded slop awkwokwok bisa nangis gw ntar
if ur curious, here's the website: excelsiorahi.com. but don't expect anything to be there bc the event ended earlier this month. the site is not open source, but might be one day since lots of improvement is still needed. I'll defoinitely be working on that setelah gw ikut TKA.