PPL-PERTEMUAN 7

 Nama: Moh rosy haqqy aminy

NRP: 5025211012

Kelas: PPL A


Low Level Design dan High Level Designnya dari sistem food delivery/restaurant.

Referensi: link


Problem Statement

Sistem food delivery/restaurant.

Functional Requirements

1. Manajemen Akun Pengguna:
   - Pengguna dapat mendaftar, masuk, dan mengelola profil mereka.
   - Pemulihan kata sandi dan mekanisme autentikasi pengguna.

2. Manajemen Profil Restoran:
   - Restoran dapat membuat dan mengelola profil mereka.
   - Kemampuan untuk memperbarui item menu, harga, dan ketersediaan.

3. Sistem Penempatan Pesanan:
   - Pelanggan dapat menelusuri menu, memilih item, dan melakukan pemesanan.
   - Integrasi permintaan khusus dan opsi penyesuaian untuk item menu.

4. Integrasi Pembayaran:
   - Pemrosesan pembayaran yang aman melalui kartu kredit/debit, perbankan online, dan dompet digital.
   - Mendukung kode promosi dan diskon.

5. Pelacakan Pesanan:
   - Update status pesanan secara real-time untuk pelanggan.
   - Pelacakan GPS untuk pengiriman bagi pelanggan untuk melihat rute pengiriman dan perkiraan waktu kedatangan.

6. Umpan Balik dan Penilaian:
   - Pelanggan dapat memberi peringkat dan mengulas restoran dan layanan pengantaran.
   - Restoran dapat menanggapi umpan balik.

7. Panel Administrasi:
   - Administrator sistem dapat mengelola akun pengguna dan mengakses analisis sistem.
   - Kemampuan untuk mengintervensi perselisihan atau masalah yang terkait dengan pesanan.

8. Sistem Pemberitahuan:
   - Pemberitahuan SMS dan email otomatis untuk konfirmasi pesanan, status pengiriman, dan promosi.


Non-functional Requirements
1. Kinerja:
   - Sistem harus menangani hingga 10.000 pengguna secara bersamaan tanpa penurunan kinerja.
   - Pemrosesan pesanan dan transaksi pembayaran harus selesai dalam waktu kurang dari 5 detik.

2. Keandalan:
   - Sistem harus beroperasi 24/7 dengan waktu henti kurang dari 0,1% per tahun.
   - Pemulihan otomatis dari kegagalan tanpa campur tangan manusia.

3. Kegunaan:
   - Antarmuka pengguna harus intuitif dan mudah digunakan untuk semua kelompok usia.
   - Harus mendukung antarmuka multibahasa.

4. Skalabilitas:
   - Mampu meningkatkan sumber daya selama waktu puncak seperti akhir pekan dan hari libur.
   - Sistem harus mendukung penambahan lebih banyak restoran dan perluasan geografis tanpa perubahan yang signifikan.

5. Keamanan:
   - Kepatuhan terhadap peraturan perlindungan data seperti GDPR.
   - Penanganan data yang aman, transaksi terenkripsi, dan perlindungan terhadap ancaman keamanan.

6. Pemeliharaan:
   - Kode harus didokumentasikan dengan baik dan modular untuk memfasilitasi pembaruan dan pemeliharaan.
   - Dukungan untuk pencatatan dan pemantauan untuk membantu pemecahan masalah dan pengoptimalan.

7. Kompatibilitas:
   - Kompatibel dengan browser web utama dan sistem operasi seluler.
   - Harus terintegrasi secara mulus dengan layanan pihak ketiga seperti gateway pembayaran dan layanan peta.

Scalability Estimation

kita estimasikan sistem menerima order 6000 order per menit.
berati ada 100 order/detik, asumsikan 1 orde 500 bytes maka bandwith setara dengan 100*500=50.000 bytes/detik.

Estimasi penyimpanan sendiri untuk 1 tahun adalah:
6000*60*24*360*500 =1.555.200.000.000 = 15 TB


High Level Design


1. Consumer App, Restaurant App, Admin App
Aplikasi-aplikasi tersebut merupakan bagian dari sistem Frontend, yang memungkinkan interaksi dengan layanan backend melalui input dari pengguna.

2. SMS Adapter
Bertindak sebagai jembatan antara jaringan seluler dan aplikasi untuk komunikasi real-time.

3. Load Balancer
Meningkatkan kinerja dan skalabilitas sistem dengan mengelola beban jaringan secara efisien.

4. Web Server
Bertindak sebagai komponen inti dari backend di mana fungsi aplikasi web dijalankan.

5. Auto Scaling Group
Memastikan sistem dapat menskalakan sumber daya ke atas atau ke bawah berdasarkan lalu lintas, meningkatkan kinerja dan efektivitas biaya.

6. Cache
Meningkatkan waktu respons dan mengurangi beban pada database.

7. Amazon RDS (Relational Database Service)
Menyimpan dan mengelola data penting seperti informasi pengguna, detail pesanan, dan inventaris dalam format terstruktur.

8. Read Replica
Meningkatkan kinerja dan ketersediaan basis data.

9.Amazon S3 Bucket
Digunakan untuk menyimpan aset statis seperti gambar, skrip, dan file gaya, memastikan daya tahan data dan menyederhanakan pencadangan.

10. Amazon CloudFront
Mempercepat pengiriman konten ke pengguna akhir, meningkatkan pengalaman pengguna.

11.Payment
Sangat penting untuk menangani penagihan dan pembayaran di dalam sistem.

12. Email
Mendukung komunikasi langsung dengan pengguna, meningkatkan keterlibatan dan kepuasan pengguna.

13. Analytics
Memberikan wawasan untuk pengambilan keputusan strategis dan peningkatan sistem.

Low Level Design


General:
Mengunakan HTML,CSS,JavaScript, Ajax, XML,JavaServer Pages.


Database:




Data Flow Diagrams:

Komponen
- Halaman JSP: Ini adalah Halaman JavaServer yang digunakan untuk lapisan presentasi aplikasi web. Halaman ini bertanggung jawab untuk merender antarmuka pengguna dan mengumpulkan masukan dari pengguna.
- Formulir: Komponen ini kemungkinan besar mewakili formulir web pada halaman JSP. Komponen ini digunakan untuk menangkap input pengguna, yang kemudian dikirimkan ke server untuk diproses. Formulir juga menangani validasi awal dari data masukan sebelum dikirimkan.
- ACTION: Ini merupakan komponen pengontrol yang menangani logika bisnis setelah menerima data dari halaman JSP. Dalam arsitektur Model-View-Controller (MVC) yang khas, ini akan menjadi bagian dari lapisan pengendali yang memutuskan apa yang harus dilakukan dengan data yang masuk, termasuk interaksi dengan sistem backend.
- ManagerBean: Ini adalah sebuah managed bean yang bertindak sebagai mediator antara action layer dan database. Ini mengabstraksikan logika bisnis dan logika akses data, menangani pemanggilan metode dari lapisan aksi, berinteraksi dengan database, dan mengembalikan data.
- Basis data: Ini adalah sistem penyimpanan di mana data disimpan, diambil, dan dimanipulasi. ManagerBean berinteraksi dengan database untuk melakukan operasi seperti meminta data dan mengembalikan hasil berdasarkan logika yang didefinisikan dalam aplikasi.


Tampilan aplikasi:




Komentar

Postingan populer dari blog ini

QUIZ PBKK kelas A - Senin

latihan PBKK - Introduction CodeIgniter 4

Latihan 1 (PBKK)