0

Kelaskita merupakan salah satu contoh aplikasi web yang menggunakan teknologi-teknologi terkini. Bahasa pemrograman utama yang digunakan adalah Python dengan web framework DjangoDjango merupakan web framework _Python yang sangat populer yang berada dibelakang situs-situs keren seperti InstagramBitbucketPinterestMozilla Support, dll. Selain Django, kelaskita juga memanfaatkan Bottle dan Falcon. Bottle juga merupakan salah satu _web framework _yang dibuat menggunakan Python, sedangkan Falcon merupakan _framework _Python khusus untuk membuat _cloud API.

Selain Python, bahasa pemrograman lain yang digunakan kelaskita adalah JavaScript. Agar lebih interaktif, tentu JavaScript akan sangat diperlukan oleh kelaskita. Dibagian backend, kelaskita menggunakan Nodejs yang mana programnya ditulis dalam bahasa pemrograman JavaScript.

Untuk masalah penyimpanan data, kelaskita menggunakan MongoDB. MongoDB merupakan aplikasi basis data _open source _berbasis dokumen. Berbasis dokumen karena MongoDB tidak menyimpan datanya dalam bentuk tabel-tabel yang berelasi melainkan kedalam dokumen yang disebut dengan BSON. Selain MongoDB, kelaskita juga menggunakan Redis. Namun, jika MongoDB digunakan untuk menyimpan data-data yang digunakan oleh peserta, maka Redis bersama dengan Memcacheddigunakan untuk menyimpan data sementara kelaskita agar tidak terjadi permintaan yang berlebihan ke server utama.

Karena memiliki pengguna yang cukup besar, kelaskita memiliki ribuan pesan yang mengantri untuk dikirimkan. Setiap kelas yang dibuka diikuti oleh ratusan orang. Anggap saja satu kelas diikuti oleh 100 orang dan saat ini terdapat 147 kelas, maka untuk notifikasi terkait pengumuman untuk setiap kelas setidaknya akan ada 14.700 pesan yang mengatri untuk diatur pengirimannya. Untuk mengatur hal ini, kelaskita menggunakan RQ.

Sebagai sebuah aplikasi web, tentu kelaskita membutuhkan web server. Untuk yang satu ini, kelaskita memilih Ubuntu beserta Gunicorn danNginx. Pemilihan Ubuntu mungkin tidak terdengar aneh karena sistem operasi besutan Canonical ini telah memiliki reputasi sebagai sistem operasi yang handal baik di desktop maupun server. Gunicorn merupakan Python WSGI HTTP Server, aplikasi yang secara khusus digunakan untuk web framework yang dibuat dengan Python seperti Django, Flask, web2py, dll. Nginx sendiri merupakan HTTP Server berukuran kecil yang sangat handal, namun Nginx tak hanya sekedar HTTP Server. Nginx juga dapat digunakan sebagai reverse proxy _untuk protokol HTTP, HTTPS, IMAP, SMTP, POP3, bahkan dapat digunakan sebagai _load balancer dan HTTP Cached.

Tidak mudah untuk mengembangkan aplikasi web yang kompleks seperti kelaskita. Tim pengembang kelaskita pun pernah mengalami berbagai kesulitan, contohnya saat membuat fitur realtime notification _dan sistem _cache. Setelah beberapa tahun, kesulitan tersebut bertambah, misalnya bagaimana kelaskita mengirimkan notifikasi secara realtime_kepada 5.000 peserta suatu kelas, atau bagaimana kelaskita mengirim _email _ke 50.000 peserta yang terdaftar? Terkadang kelaskita harus menulis ulang _query bahkan apps-nya jika terdapat bagian-bagian yang sudah tidak optimal lagi saat digunakan oleh ribuan peserta.

Saat ini kelaskita sedang mengembangkan aplikasi Android agar pengguna dapat belajar di kelaskita melalui smartphone kapanpun dan dimanapun. Layaknya beberapa startup _lain, kelaskita juga mengalami kesulitan saat mencari Android developer. Butuh waktu hingga tiga bulan untuk menemukan _programmer yang dianggap memenuhi kriteria untuk mengembangkan kelaskita. Sulitnya meyakinkan calon _programmer _bahwa proyek yang sedang dikerjakan bisa sukses dimasa depan merupakan alasan utama mengapa kelaskita membutuhkan waktu tiga bulan untuk menemukan orang pilihannya.

Dengan lahirnya kelaskita, Bang Ali berharap dapat membantu lebih banyak orang yang ingin belajar maupun ingin mengajar. Selain itu, Bang Ali juga berharap agar kelaskita dimasa yang akan datang dapat sedikit membantu mencerdaskan Indonesia dan memberi inspirasi untuk teman semua, supaya bisa membuat karya yang bermanfaat bagi masyarakat.

Original Post: http://www.codepolitan.com/mengintip-teknologi-dibalik-kelaskita/

python django

Your Answer

blog comments powered by Disqus