Daily Report Generator 2.0: Lebih Aman, Lebih Praktis!
Masih ingat sistem versi 1.0 yang pernah kubahas? Mungkin yang belum bisa baca dulu di bawah ini.
Jujur, versi itu masih penuh dengan kekurangan. Mulai dari belum bisa kirim langsung ke email (masih harus copas), terkadang font-nya suka berbeda, dan yang paling parah adalah keamanan datanya. Informasi profil masih ditulis hardcode, sehingga keamanan datanya jelas bermasalah.
Setelah dapat masukan dari Pak Bos dan Mas Ridwan, ku putuskan untuk menambah fitur profil pengguna dan meningkatkan keamanan data. Lahirlah Daily Report Generator 2.0! 🎉

Sekilas memang tidak terlihat perubahan yang signifikan, ya. Bedanya cuma ada tulisan “Versi 2.0”, wkwk. Tapi kalau dibedah satu per satu, akan terlihat perbedaannya. Mari kita bahas dari halaman utamanya dulu.
Di halaman utama, sekarang kita bisa melampirkan gambar screenshot pengerjaan Duolingo. Selain itu, ada dua tombol baru di pojok kanan atas: satu untuk pengaturan profil (Settings) dan satu lagi untuk Logout.

Pada menu Settings, kita bisa mengubah password SMTP dan signature. Jadi, user tidak perlu membuat akun berulang-ulang untuk email yang sama.

Untuk sekarang, kurang lebih begini tampilannya saat sudah diisi. Saat tombol generate ditekan, sistem akan menampilkan preview terlebih dahulu.
Di bawahnya ada dua tombol opsi:
- Generate new Email: Untuk membuat ulang.
- Send via SMTP: Jika user ingin langsung mengirim daily reportnya.
Begitu tombol kirim ditekan, akan muncul dialog box sukses yang menandakan pengiriman email berhasil ✅
Mungkin ada yang bertanya, “Kok bisa kirim langsung ke email, sih? Gimana cara buatnya?”
Tenang, sekarang akan aku bedah cara kerjanya sekilas. Di sini peran pentingnya ada pada SMTP. Sebelumnya aku disarankan untuk menggunakan SWAKS, tapi SWAKS sendiri cukup sulit diinstal jika menggunakan Windows karena perlu instal Perl juga (kalau di macOS/Linux biasanya sudah bawaan).
Maka dari itu, aku menggunakan library Python bernama smtplib. Ibaratnya, smtplib itu ‘kurir digital’ yang tugasnya mengantarkan surat dari aplikasi kita ke kantor pos besar (server email perusahaan). Jadi, smtplib alias si kurir ini perlu “mengetuk pintu” server dan memasukkan data-data rahasia sebelum bisa mengirim email dari sana.
Pertanyaan selanjutnya: “Kalau dibuat profil user, apakah datanya aman?”
Tantangan terbesar dalam aplikasi ini adalah: Aplikasi harus tahu password email asli pengguna untuk mengirim laporan, tapi menyimpan password asli (polos) di database adalah tindakan berbahaya (security risk). Maka dari itu, saat membuat fitur profil, aku harus mempertimbangkan keamanan data di database.
Solusinya, aku menggunakan Enkripsi Dua Arah (Symmetric Encryption). Jadi, data user akan disimpan secara acak di database, tapi bisa dikembalikan ke bentuk aslinya (decrypt) oleh aplikasi menggunakan “Kunci Rahasia”.
Sehingga, saat kita melihat data di database pun, kita tidak akan tahu password asli dari user lainnya karena bentuknya sudah terenkripsi.

Untuk versi 2.0, fiturnya mungkin hanya sebatas ini, walaupun tidak terkirim saat idle ber jam-jam dan sempat salah kirim waktu testing pula wkwk (maaf pak bos). Tapi, aku cukup puas dengan perkembangannya. Untuk pengembangan selanjutnya, aku masih belum tahu akan sekompleks apa nantinya. Tapi, hal itu pasti akan kupertimbangkan setelah aplikasi ini bisa digunakan dan dicoba oleh user lain