NAMA : Ananda Hadi Saputra
KELAS : PPL A
NRP : 5025201148
Tugas yang diberikan pada mata kuliah Perancangan Perangkat Lunak (A), yaitu terkait Software Architecture.
Berikut merupakan dokumentasinya :
Desain Sistem Aplikasi Kasir Restaurant
High Level Design
Functional Requirements:
Order Management
Mengizinkan staf menunggu untuk memasukkan pesanan pelanggan dengan memilih item dari menu digital.
Kelola modifikasi dan permintaan khusus untuk setiap item (misalnya, tanpa bawang, saus tambahan).
Hitung total pesanan termasuk pajak dan biaya layanan.
Manajemen Tabel
Lacak ketersediaan meja dan tetapkan pesanan ke tabel tertentu.
Aktifkan penggabungan atau pemisahan tabel untuk grup yang lebih besar.
Kelola reservasi dan daftar tunggu.
Manajemen persediaan
Perbarui tingkat inventaris berdasarkan pesanan yang dilakukan.
Peringatkan staf ketika tingkat persediaan rendah atau barang habis.
Proses pembayaran
Terima berbagai metode pembayaran (tunai, kartu kredit/debit, pembayaran seluler).
Menghasilkan dan mencetak tanda terima terperinci untuk pelanggan.
Pelaporan dan Analisis
Hasilkan laporan penjualan berdasarkan item, periode waktu, atau anggota staf.
Analisis tren dan preferensi pelanggan.
Manajemen Staf
Izinkan akses tingkat manajer untuk penjadwalan dan izin staf.
Memantau kinerja dan produktivitas staf.
Non-Functional Requirements:
Performance (performa)
Waktu respons untuk pemasukan dan pemrosesan pesanan harus cepat untuk meminimalkan waktu tunggu pelanggan.
Sistem harus menangani beban puncak selama jam sibuk secara efisien.
Reliability (keandalan)
Sistem harus tersedia selama jam operasional restoran dengan waktu henti minimal.
Integritas dan keamanan data sangat penting untuk mencegah hilangnya pesanan atau informasi pelanggan.
Usability (Kegunaan)
Antarmuka pengguna yang intuitif agar mudah diadopsi oleh pelayan dan manajemen.
Dukungan untuk berbagai bahasa jika diperlukan untuk staf yang beragam.
Security (Keamanan)
Pemrosesan pembayaran harus mematuhi standar PCI DSS untuk melindungi informasi pembayaran pelanggan.
Kontrol akses berbasis peran untuk memastikan privasi dan integritas data.
Scalability (Skalabilitas)
Kemampuan untuk menskalakan sistem untuk mengakomodasi pertumbuhan jumlah tabel dan transaksi.
Global Considerations:
Localization (Lokalisasi)
Dukungan untuk berbagai mata uang dan sistem pajak berdasarkan lokasi restoran.
Kepatuhan terhadap peraturan setempat mengenai layanan makanan dan perpajakan.
Accessibility (Aksesibilitas)
Pastikan fitur aksesibilitas bagi pengguna penyandang disabilitas (misalnya pembaca layar, navigasi keyboard).
Integration (Integrasi)
Kompatibilitas dengan sistem eksternal seperti sistem tampilan dapur (KDS), software akuntansi, dan platform pemesanan online.
Maintenance and Support (Pemeliharaan dan Dukungan)
Pembaruan dan pemeliharaan rutin untuk mengatasi bug dan kerentanan keamanan.
Penyediaan dukungan teknis dan pemecahan masalah.
Low level Design
Database Design:
Menu Items:
item_id (Primary Key): Unique identifier for the menu item.
name: The name of the menu item.
price: The price of the menu item.
category_id (Foreign Key): Category ID to categorize the menu item.
Category:
category_id (Primary Key): Unique identifier for the menu item category.
name: Category name (e.g. Appetizer, Main Course, Drink).
Order:
order_id (Primary Key): Unique identifier for the order.
table_number: The table number where the order was placed.
order_time: Timestamp when the order was placed.
status: The current status of the order (for example, Pending, In Progress, Completed).
Items ordered:
order_item_id (Primary Key): Unique identifier for each item in the order.
order_id (Foreign Key): ID of the Order that owns the item.
item_id (Foreign Key): The item ID of the menu item.
quantity: The number of menu items ordered.
special_requests: Any special requests or modifications to the item.
Inventory:
inventory_id (Primary Key): Unique identifier for an inventory item.
item_id (Foreign Key): The item ID linked to the menu item.
quantity_available: The number of items available currently in stock.
System Components:
Frontend Application:
Teknologi: React.js untuk antarmuka pengguna.
Komponen: Antarmuka entri pesanan, manajemen tabel, tampilan menu.
Backend Server:
Teknologi: Node.js dengan Express.js untuk REST API.
Komponen: Titik akhir API untuk menangani pesanan, item menu, dan inventaris.
Database Management System (DBMS):
Teknologi: PostgreSQL untuk manajemen database relasional.
Peran: Menyimpan dan mengelola data terkait item menu, pesanan, dan inventaris.
Payment Gateway Integration:
Teknologi: Stripe API untuk memproses pembayaran dengan aman.
Komponen: Integrasi untuk memudahkan transaksi pembayaran.
User Interfaces (UI):
Waitstaff Interface:
Display menu items with categories for easy selection.
Ability to add/remove items and specify quantities.
View order summary and submit orders.
Manager Dashboard:
Akses ke laporan penjualan, status inventaris, dan riwayat pesanan.
Ability to add/edit menu items and manage staff.
Technology Stack:
Frontend: React.js, HTML/CSS, JavaScript.
Back End: Node.js, Express.js.
Database: PostgreSQL.
Payment Integration: Stripe API.
Deployment: Docker for containerization, AWS for cloud hosting.
Workflow Example:
Pelayan masuk ke sistem menggunakan Role mereka.
Pelayan memilih meja dan mulai menambahkan item dari menu ke pesanan.
Pelayan menentukan modifikasi atau permintaan khusus untuk setiap item.
Detail pesanan dikirim ke server backend melalui panggilan API dan disimpan dalam database.
Staf dapur melihat pesanan dan mulai menyiapkan barang-barangnya.
Setelah siap, pesanan ditandai sebagai selesai di sistem.
Pelayan membuat tagihan dan memproses pembayaran menggunakan gateway pembayaran terintegrasi.
Komentar
Posting Komentar