Membangun Platform Edtech Menggunakan Layanan Microser dan Docker
Deskripsi proyek
Proyek terdiri dari tiga layanan mikro yaitu:
- User Microservice
- Microservice kursus
- Pendaftaran Microservice
User Microservice membantu mendaftarkan pengguna ke dalam aplikasi. Kemudian membantu pengguna untuk masuk ke akunnya dan memiliki sesi terpisah untuk diri mereka sendiri. Microservice ini memiliki database independen (dalam hal ini database MongoDB) yang bertanggung jawab untuk menjaga kredensial pengguna saja. Kata sandi yang disimpan dalam database ditumpuk dan karenanya memastikan keamanan pengguna yang mendaftar di aplikasi web.
Kursus Microservice membantu pengguna yang masuk untuk mendaftar ke kursus tertentu. Pengguna yang masuk kemudian dapat belajar dengan kecepatan mereka sendiri dari kursus yang terdaftar. Fitur unik yang dimiliki Web-App ini adalah bahwa, setiap pengguna diizinkan untuk mengunggah kursus mereka sendiri tidak seperti aplikasi web pendidikan tradisional. Setiap pengguna dapat mengunggah konten mereka untuk dipelajari oleh pengguna lain.
Pendaftaran Microservice pada dasarnya akan mentransfer permintaan API ke layanan pembayaran pihak ketiga dan itu akan menangani semua pembayaran yang dilakukan oleh pengguna dan karenanya membantu dalam memungkinkan akses untuk kursus tertentu untuk pengguna.
Bagaimana cara menjalankan proyek ini secara lokal?
- Kloning repositori ini.
- Pastikan Anda memiliki file ".env" di basis kode Anda. Perbarui Konten dalam File Env untuk memasukkan RazorPay KeyID dan Secret_Key Anda
- Masukkan URL Cloudinary untuk proyek Anda dengan mengedit JS -> Script.js -> <cloudinary_url>
- Instal Docker dan mulai.
- Gunakan terminal dan tulis perintah berikut.
docker-compose up --build --remove-orphans
- Arahkan ke http: // localhost: 5000 untuk menemukan situs web dan berjalan.
URL situs web
URL Situs Web Langsung: http://129.213.124.99:5000/
Platform Cloud: Infrastruktur Oracle Cloud
Video
Video dan Penjelasan terperinci: https://drive.google.com/file/d/1fmqwxorlnv5u1ksagilcfcrnljfw6gn8/view?usp=sharing
Video pendek: https://drive.google.com/file/d/1eyqw0__sejbi9onpoak35rzrsozpd8wg/view?usp=sharing
Bagaimana cara menggunakan situs web di cloud?
- Buat Akun Oracle Cloud, menggunakan langganan tingkat gratis (jika diperlukan).
- Buat Virtual Cloud Network (VCN).
- Konfigurasikan daftar keamanan default untuk VCN dengan menambahkan aturan ingress untuk port 22, 80. Tambahkan port yang akan Anda gunakan untuk proyek. Misalnya, dalam proyek ini kami memiliki port 5000, 5001, 7000, 30002.
- Buat dan sambungkan ke instance cloud.
- Instal Git, Docker dan Docker-Compose pada terminal instance cloud.
- Kloning repositori ini dan jalankan
docker-compose up --build -d
- Atur firewall menggunakan perintah berikut:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=5000/tcp <ALL REQUIRED PORTS>
sudo firewall-cmd --reload
- Pergi ke IP publik Anda: Port! Voila! Situs web Anda digunakan di Cloud! :)
Makalah teknis
Makalah disajikan pada konferensi IEEE Pune oleh @aparna0522 (Aparna Naik) pada bulan Desember 2021.
Makalah yang diterbitkan di IEEE Xplore pada tanggal 31 Januari, 2022.
Tautan kertas: https://ieExplore.ieee.org/document/9686535
Keunikan aplikasi
- Aplikasi ini memungkinkan pengguna mana pun untuk mengunggah kursusnya sehingga orang lain dapat belajar dari kursus yang sama. (Perspektif Pengguna)
- Aplikasi ini menggunakan arsitektur Microservices yang membuatnya diskalakan, bergantung dan kuat dibandingkan dengan aplikasi arsitektur monolitik. (Perspektif Teknologi)
Pekerjaan di masa depan
- Biarkan rekan menghubungkan satu-satu, jaringan, belajar dan tumbuh bersama, dengan mengintegrasikan layanan obrolan (memungkinkan hanya pengguna terdaftar untuk melihat pengguna lain, dan menyembunyikan detail identitas, kecuali jika pengguna menginginkan sebaliknya).
- Kemampuan bagi instruktur untuk membuat quize untuk evaluasi yang mudah.
- Dapat menambahkan beberapa sistem pemantauan analitik untuk pengunggah kursus.
- Layanan Rekomendasi.
- Layanan Pemberitahuan Kursus Baru.
Fitur penting dari aplikasi:
- Independen dari layanan mikro lainnya.
- Jika satu layanan turun, itu tidak mempengaruhi layanan lain.
- Penskalaan layanan.
- Efisien.
- Portablity.