PPL: Pertemuan 13
Desain System Aplikasi Instagram
Deskripsi Aplikasi
Instagram adalah platform media sosial yang memungkinkan pengguna untuk berbagi foto dan video, mengikuti teman, selebriti, serta berbagai konten menarik lainnya. Aplikasi ini dirancang untuk memberikan pengalaman berbagi yang kaya dan interaktif, didukung oleh berbagai fitur sosial seperti like, komentar, dan pesan langsung. Desain sistem aplikasi Instagram harus memastikan kinerja yang tinggi, skalabilitas, keamanan, dan pengalaman pengguna yang optimal.
Persyaratan Fungsional
1. Autentikasi dan Otentikasi Pengguna:
- Pengguna dapat membuat akun baru.
- Pengguna dapat login menggunakan kredensial mereka.
- Pengguna dapat melakukan logout.
- Mendukung login sosial melalui Facebook, Google, dll.
2. Profil Pengguna:
- Pengguna dapat melihat dan mengedit profil mereka (bio, gambar profil, dll).
- Pengguna dapat mengikuti dan berhenti mengikuti pengguna lain.
- Pengguna dapat melihat daftar pengikut dan pengguna yang mereka ikuti.
3. Postingan:
- Pengguna dapat mengunggah foto dan video.
- Pengguna dapat mengedit dan menghapus postingan mereka.
- Pengguna dapat menambahkan keterangan, tagar, dan lokasi ke postingan.
- Postingan ditampilkan di feed pengguna dan pengikut mereka.
4. Interaksi Sosial:
- Pengguna dapat memberikan suka (like) pada postingan.
- Pengguna dapat memberikan komentar pada postingan.
- Pengguna dapat mengedit dan menghapus komentar mereka.
- Pengguna dapat berbagi postingan ke pengguna lain melalui pesan langsung.
5. Feed:
- Pengguna dapat melihat feed yang dipersonalisasi berdasarkan aktivitas dan pengikut mereka.
- Feed diperbarui secara real-time.
6. Pemberitahuan:
- Pengguna mendapatkan notifikasi tentang suka, komentar, sebutan, dan pengikut baru.
- Notifikasi dikirimkan melalui push notifications atau email.
7. Pencarian:
- Pengguna dapat mencari pengguna lain, hashtag, dan lokasi.
- Pencarian menampilkan hasil yang relevan dan cepat.
8. Pesan Langsung:
- Pengguna dapat mengirim dan menerima pesan langsung.
- Mendukung pengiriman foto dan video dalam pesan.
9. Keamanan dan Privasi:
- Mendukung pengaturan privasi akun (publik atau pribadi).
- Pengguna dapat memblokir dan melaporkan pengguna lain.
- Menyediakan verifikasi dua langkah untuk keamanan tambahan.
Persyaratan Non-Fungsional
1. Kinerja dan Skalabilitas:
- Aplikasi harus mampu menangani jutaan pengguna secara bersamaan.
- Respon aplikasi harus cepat dengan waktu muat yang minimal.
- Sistem harus dapat diskalakan secara horizontal untuk mendukung pertumbuhan pengguna.
2. Keandalan dan Ketersediaan:
- Aplikasi harus memiliki waktu kerja (uptime) yang tinggi, minimal 99.9%.
- Sistem harus memiliki mekanisme pemulihan bencana dan backup reguler.
3. Keamanan:
- Data pengguna harus dilindungi dengan enkripsi baik dalam transit maupun saat disimpan.
- Implementasi protokol keamanan untuk mencegah serangan seperti SQL injection, XSS, dll.
- Sistem harus mematuhi regulasi privasi data (misalnya GDPR).
4. Penggunaan Sumber Daya:
- Aplikasi harus efisien dalam penggunaan sumber daya server.
- Optimasi penggunaan bandwidth untuk menghemat data pengguna.
5. Portabilitas dan Kompatibilitas:
- Aplikasi harus kompatibel dengan berbagai perangkat dan sistem operasi (iOS, Android, web).
- Dukungan untuk berbagai resolusi layar dan orientasi perangkat.
6. Pengalaman Pengguna (UX):
- Antarmuka pengguna harus intuitif dan mudah digunakan.
- Navigasi aplikasi harus lancar dan konsisten.
7. Pemeliharaan dan Dukungan:
- Kode harus ditulis dengan baik dan terdokumentasi untuk memudahkan pemeliharaan.
- Menyediakan dukungan teknis dan update reguler untuk aplikasi.
8. Kepatuhan:
- Sistem harus mematuhi semua regulasi yang berlaku terkait privasi dan keamanan data pengguna.
- Memastikan bahwa aplikasi mematuhi persyaratan dan pedoman platform (misalnya, App Store, Google Play).
Low Level Design
- Menyimpan dan mengelola data pengguna.
- Menyediakan otentikasi dan otorisasi untuk akses aplikasi.
- Terintegrasi dengan penyedia otentikasi sosial (misalnya, Facebook, Google).
- Mengelola pengunggahan, pengeditan, dan penghapusan postingan.
- Menyimpan metadata yang terkait dengan setiap postingan.
- Memproses media yang diunggah.
- Mengelola penyimpanan media dengan efisiensi tinggi.
- Menghasilkan feed yang dipersonalisasi untuk pengguna.
- Mengelola pembaruan feed secara real-time menggunakan sistem messaging.
- Mengindeks dan mencari pengguna, hashtag, dan lokasi.
- Menyediakan hasil pencarian yang cepat dan relevan.
- Mengelola penambahan, pengeditan, dan penghapusan komentar.
- Mengirim notifikasi ke pengguna tentang peristiwa penting seperti suka, komentar, dan pengikut baru.
- Menyimpan data dengan solusi penyimpanan objek yang dapat diskalakan seperti Amazon S3.
- Melacak dan menganalisis keterlibatan pengguna dan kinerja platform.
High Level Design
- Pengguna baru akan melakukan pendaftaran terlebih dahulu dan kemudian melakukan login untuk mengakses fitur-fitur lainnya.
- Setelah login, pengguna dapat mengunggah foto, mengedit detail foto, memberikan komentar, serta mengedit atau menghapus komentar.
- Pengguna juga dapat mengikuti akun lain untuk mendapatkan pembaruan dari akun yang diikuti.
- Admin memiliki kontrol penuh atas pengelolaan pengguna dan konten dalam sistem, memastikan bahwa semua aktivitas berjalan sesuai dengan kebijakan yang ditetapkan.
- Admin dapat menyetujui atau menghapus konten yang diunggah oleh pengguna dan juga dapat mengelola informasi produk jika sistem mencakup fitur e-commerce
Comments
Post a Comment