Software Architecture

Aspek Pertimbangan
- Ease of development : Layered Architecture relatif mudah dan tidak kompleks dalam developmentnya.
- Testability : Karena setiap komponennya terpisah dengan layernya masing-masing menjadikannya mudah dalam pengetesan.
- Performance : Performa sendiri menjadi tantangan tersendiri dalam Layered Architecture karena secara harfiah dibutuhkan proses melalui beberapa layer untuk menjalankan logicnya.
- Scalability : Dalam hal skalabilitas Layered Architecture sulit untuk diperluas karena akan memerlukan biaya dan waktu yang besar.
- Maintainability : Pemeliharaan juga dapat menjadi tantangan dalam Layered Architecture. Jika tidak diimplementasikan dengan baik dapat mempersulit pemeliharaannya.
Terlepas dari kekurangan dalam hal performance, scalability dan maintainability, aspek pertimbangan dalam kemudahan dan waktu development yang cukup terbatas maka Layered Architecture adalah pilihan yang tepat untuk project ini.
Data Model Structure for Firebase Database

Use Case Diagram
![UseCase[1].jpg](attachment:04965fae-aa62-4fe7-abef-9e5c552f95c4:UseCase1.jpg)
Activity Diagram