Tukang Absen, hmmmmmm, dari namanya aja udah mulai gk bener ya, emang bener sih, ini project gk bener, jangan ditiru ya. Tukang absen adalah website yang punya tujuan untuk membantu para mahasiswanya agar gk perlu capek capek absen ?, alias DIABSENIN sama robot, iya! diabsenin sama robot ?.
Website ini punya alasan dan tujuannya kenapa bisa direalisasiin ?. #LetMeExplain
Alasan
Alasan kenapa project ini dibikin karena, pada masa pandemi covid-19, saya dan teman-teman saya sering banget lupa absen di halaman moodle, meskipun kita hadir dan nyimak di zoom/gmeet tapi kalau kita lupa absen di moodle, sama aja kita gk hadir (walaupun kita ngerjain tugas pada hari itu). Ya itu alasannya. Akhirnya nih ya, saya bikin project Tukang Absen ini.
Tujuan
Yaaaaa, gimana ya, biar gk lupa absen aja sih, hehe ?
Cara Saya Buat Tukang Absen
Akhirnya saya belajar nih micro framework python web namanya Flask, saya belajar tuh kira-kira cuman 1 harian, besoknya langsung eksekusi bikin sisi frontend mulai dari login, dashboard hingga halaman-halaman lain yang memang diperluin. Anggap aja dari sisi frontend selesai nih, lanjut ke sisi backend. Kan Flask tuh, dimana bukan mvc, jadi hasil akhirnya cuman dapet 1 file aja buat jalanin keseluruhan sistem WKAKWAKWAKWA (tapi serius, dan ini dikit, cuman 400 baris kode. Total ada 8 halaman, jadi bikin routing buat 8 halaman tersebut, belum lagi routing lain buat eksekusi form yang ada, dan gk lupa bikin API juga buat si ajax nanti, karena memang ada beberapa form yang manfaatin ajax.
Anggap sisi backend web sudah selesai, buat backend web kerjanya cuman CRUD standar ke database. Selanjutnya dari sisi automatisasi-nya, 100% pake python, sebelum masuk ke programnya, saya sebelumnya coba reverse engineering sederhana dulu si moodle tersebut, cuman reverse engineering dari HTTP Request aja sih, jadi gk terlalu ribet dan Alhamdulillahnya tembus pake CURL doang (padahal ada access-tokennya). Anggap aja alur HTTP Request udah didapatin mulai dari login moodlenya, validasi data moodlenya, mendapatkan informasi profile (cuman ambil foto profile dan nama aja), dan request buat absen coursenya.
Jujur, saya males jelasin kodingan robotnya, yang jelas nih robot 100% disenangi oleh para mahasiswa KWAKWAKKWAKWAKW.
Mari kita breakdown teknologi yang saya pakai di project ini:
- Bahasa Pemograman: Python 3
- Micro Framework: Flask
- Frontend: Flask
- Backend: Flask
- Reverse Engineering: HTTP Request
- Script robot
- Python 3
- Library request, lxml, bs4, mysql, cryptography, datetime, dhooks
- 316 baris kode
- Running 24/7 di VPS