Tugas Pertemuan 13 PPL A

Nama : Christian Kevin Emor

NRP : 5025211153
Kelas : PPL A

Rancangan Desain Instagram

Link Refrensi : Refrensi Tugas

Instagram adalah platform media sosial yang memungkinkan pengguna untuk berbagi foto dan video, serta mengikuti dan berinteraksi dengan pengguna lain melalui fitur seperti likes, komentar, dan direct messaging. Aplikasi ini juga menawarkan fitur Stories, Reels, dan IGTV untuk konten video yang lebih panjang dan berbagi momen sehari-hari.

Spesifikasi Kebutuhan / Requirements

Fungsional:

  1. Pendaftaran dan login pengguna
  2. Unggah dan berbagi foto/video
  3. Fitur komentar dan like
  4. Mengikuti dan diikuti oleh pengguna lain
  5. Pesan langsung (Direct Messaging)
  6. Pencarian dan eksplorasi konten
  7. Fitur Stories, Reels, dan IGTV
  8. Notifikasi aktivitas pengguna

Non-Fungsional:

  1. Skalabilitas untuk menangani jutaan pengguna
  2. Ketersediaan tinggi untuk akses 24/7
  3. Latensi rendah untuk respons cepat
  4. Keamanan data pengguna dan enkripsi
  5. Konsistensi kuat untuk pembaruan data secara real-time

Estimasi Kapasitas

Traffic:

  • Pengguna aktif harian: 1 miliar
  • Pengguna aktif per detik: 11.600 pengguna/detik
  • Rata-rata unggahan per menit: 350.000 unggahan/min
  • Rata-rata unggahan per detik: 5.833 unggahan/detik
  • Puncak unggahan: 700.000 unggahan/menit

Storage:

  • Setiap pengguna: 2 MB (profil, pengaturan, dll.)
  • Setiap foto/video: 5 MB
  • Setiap komentar: 200 bytes
  • Total penyimpanan untuk 1 miliar pengguna: 2 PB
  • Total unggahan per hari: 500 juta unggahan
  • Penyimpanan untuk unggahan per hari: 2,5 PB
  • Penyimpanan untuk 1 tahun (365 hari): 912,5 PB (≈913 PB)

High Level Design


Komponen Utama:
  1. Client-Side Application: Aplikasi mobile dan web untuk interaksi pengguna
  2. API Gateway: Mengelola permintaan dari aplikasi ke layanan backend
  3. User Service: Mengelola data pengguna dan autentikasi
  4. Media Service: Mengelola unggahan dan penyimpanan foto/video
  5. Feed Service: Mengelola feed pengguna dan algoritma rekomendasi
  6. Notification Service: Mengirim notifikasi push dan in-app
  7. Messaging Service: Mengelola pesan langsung antar pengguna
  8. Analytics Service: Mengumpulkan dan menganalisis data penggunaan

Database Design

Tabel Utama:

  1. Users:

    • id (PK)
    • username
    • email
    • password_hash
    • profile_picture
    • bio
    • created_at
  2. Posts:

    • id (PK)
    • user_id (FK ke Users)
    • media_url
    • caption
    • created_at
  3. Comments:

    • id (PK)
    • post_id (FK ke Posts)
    • user_id (FK ke Users)
    • comment_text
    • created_at
  4. Likes:

    • id (PK)
    • post_id (FK ke Posts)
    • user_id (FK ke Users)
    • created_at
  5. Followers:

    • user_id (FK ke Users)
    • follower_id (FK ke Users)
    • created_at
  6. Messages:

    • id (PK)
    • sender_id (FK ke Users)
    • receiver_id (FK ke Users)
    • message_text
    • created_at
  7. Notifications:

    • id (PK)
    • user_id (FK ke Users)
    • notification_type
    • message
    • created_at

Komentar

Postingan populer dari blog ini