Pertemuan 4: Software Architecure
Nama: Clarissa Luna Maheswari
NRP: 5025211003
Duolingo adalah platform pembelajaran bahasa yang populer yang menawarkan kursus bahasa untuk berbagai tingkat keahlian. Aplikasi ini tersedia dalam format mobile dan web, memungkinkan pengguna untuk belajar bahasa kapan saja dan di mana saja. Fitur Utama Duolingo:
1. Pelajaran Interaktif
Pengguna belajar melalui serangkaian pelajaran yang dirancang secara interaktif, termasuk latihan mendengarkan, berbicara, membaca, dan menulis.
2. Gamifikasi
Sistem gamifikasi Duolingo, termasuk poin, level, lencana, dan papan peringkat, membuat pembelajaran menjadi lebih menarik dan memotivasi pengguna untuk terus belajar.
3. Kemajuan Pengguna
Duolingo melacak kemajuan pengguna dan menyesuaikan tingkat kesulitan berdasarkan performa pengguna dalam pelajaran sebelumnya.
4. Notifikasi dan Pengingat
Pengguna menerima notifikasi dan pengingat untuk berlatih secara rutin, memastikan konsistensi dalam pembelajaran.
5. Komunitas dan Interaksi Sosial
Pengguna dapat mengikuti teman, berbagi kemajuan, dan berpartisipasi dalam diskusi komunitas untuk meningkatkan pengalaman belajar.
6. Konten Multibahasa
Duolingo menawarkan kursus dalam berbagai bahasa, yang dikembangkan oleh ahli bahasa dan komunitas pengguna.
Architecture Design
Penjelasan tiap layer pada arsitektur Aplikasi Duolingo:
A. Client Layer
1. Aplikasi Mobile mewakili aplikasi yang berjalan di perangkat mobile. Pengguna berinteraksi dengan platform pembelajaran bahasa melalui aplikasi ini.
2. Aplikasi Web mewakili aplikasi yang dapat diakses melalui browser web. Pengguna berinteraksi dengan platform melalui antarmuka web ini.
Kedua aplikasi, baik Mobile maupun Web, mengirim permintaan pengguna ke Manajemen API.
B. Gerbang API
Manajemen API bertindak sebagai titik masuk tunggal untuk semua permintaan klien. Manajemen API meneruskan permintaan ini ke layanan backend yang sesuai.
C. Layanan Backend
1. Layanan Otentikasi menangani otentikasi dan otorisasi pengguna. Layanan ini berinteraksi dengan Database Pengguna untuk memvalidasi kredensial dan mengelola sesi pengguna.
2. Layanan Manajemen Kursus mengelola pembuatan, pembaruan, dan penghapusan kursus bahasa. Layanan ini berinteraksi dengan Database Kursus untuk menyimpan data kursus.
3. Layanan Pengiriman Pelajaran menyampaikan pelajaran kepada pengguna, termasuk konten multimedia. Layanan ini mengambil data pelajaran dari Database Kursus dan konten multimedia dari Penyimpanan Multimedia.
4. Layanan Latihan mengelola latihan praktik dan evaluasinya. Layanan ini berinteraksi dengan Database Kursus untuk mengambil konten latihan.
5. Layanan Pelacakan Kemajuan melacak kemajuan pengguna dalam pembelajaran bahasa. Layanan ini memperbarui dan mengambil data kemajuan dari Database Kemajuan.
6. Layanan Notifikasi mengirim notifikasi kepada pengguna (misalnya, pengingat, pembaruan). Layanan ini mengirim tugas ke Antrian Tugas untuk diproses secara asinkron.
7. Layanan Gamifikasi mengelola elemen gamifikasi seperti poin, level, dan lencana. Layanan ini berinteraksi dengan Database Gamifikasi untuk memperbarui dan mengambil data gamifikasi.
D. Lapisan Database
1. Database Pengguna menyimpan informasi pengguna dan data otentikasi.
2. Database Kursus menyimpan kursus bahasa dan pelajaran.
3. Database Kemajuan menyimpan data kemajuan pengguna.
4. Database Gamifikas menyimpan data terkait gamifikasi seperti poin dan lencana.
E. Penyimpanan File
Penyimpanan Multimedia menyimpan konten multimedia (gambar, audio, video) yang digunakan dalam pelajaran.
F. Antrian Pesan
Antrian tugas mengelola tugas asinkron seperti pengiriman notifikasi. Layanan Notifikasi akan mengirim tugas ke antrian ini.
G. Monitoring dan Logging
Komponen Monitoring dan Logging memantau kinerja aplikasi dan mencatat peristiwa untuk debugging. Semua layanan backend mengirimkan log dan data kinerja ke komponen ini.
Interaksi antarkomponen
1. Lapisan Klien ke Gerbang API
Aplikasi Mobile dan Web mengirimkan permintaan ke Manajemen API.
2. Gerbang API ke Layanan Backend
Manajemen API meneruskan permintaan ke layanan backend yang sesuai berdasarkan jenis permintaan (misalnya, otentikasi, manajemen kursus).
3. Layanan Backend ke Lapisan Database
- Layanan Otentikasi -> Database Pengguna
- Layanan Manajemen Kursus -> Database Kursus
- Layanan Pengiriman Pelajaran -> Database Kursus, Penyimpanan Multimedia
- Layanan Latihan -> Database Kursus
- Layanan Pelacakan Kemajuan -> Database Kemajuan
- Layanan Notifikasi -> Antrian Tugas
- Layanan Gamifikasi -> Database Gamifikasi
4. Layanan Backend ke Komponen Monitoring dan Logging
Semua layanan backend mengirimkan log dan data kinerja ke Komponen Monitoring dan Logging untuk keperluan pemantauan dan debugging.
Comments
Post a Comment