This application is a feature-rich Restaurant Management System designed for both Staff and Guests. It demonstrates high-level software engineering practices, including hybrid data management (REST API + Local SQLite), asynchronous processing, and a strong emphasis on Legal, Social, Ethical, and Professional (LSEP) standards.
Version 3 represents the final academic polish, introducing user-governed notification systems and strict adherence to data privacy and ethical design principles.
- User Consent Mechanism: Implemented a Notification Toggle on the Guest Dashboard. The system explicitly requests and respects user consent before triggering system-level alerts, adhering to ethical software design.
- Data Privacy: Enforced strict data isolation using student-specific API partitions and local filtering to prevent unauthorized data exposure.
- Persistent Preferences: User notification settings are persisted using
SharedPreferences, ensuring the application remembers user choices across sessions. - Status Bar Integration: Leverages
NotificationManagerto provide immediate, non-intrusive feedback for successful reservations.
- Room Database: Fully implemented local SQLite persistence for reservations, fulfilling the requirement for a local database alongside the RESTful API.
- Multi-threaded Sync: Data is synchronized to the local DB using manual worker threads to prevent UI blocking (ANR prevention).
- Secure API Auth: Real-time authentication via university servers for both Staff and Guest roles.
- Activity Authorization: Added backend checks to ensure only users with 'admin' type can access management interfaces.
- Networking: Retrofit 2.9.0 & Gson.
- Local Database: Room Persistence Library 2.6.1.
- Design Patterns: Repository Pattern, Singleton, and View Binding.
- Principles: Built following SOLID principles (SRP, DIP, OCP).
- Legal: Compliance with data isolation via student ID partitioning.
- Social: Improving accessibility through responsive GUI components.
- Ethical: Prioritizing User Autonomy via the notification consent toggle.
- Professional: Following Android's latest development guidelines (Worker threads, View Binding, Material 3).
- Open in Android Studio (Hedgehog+).
- Connect to University Network (Required for API: 10.240.72.69).
- Sync Gradle to download all dependencies.
- Run on Device/Emulator (API 33+).
| Role | Username | Password | Status |
|---|---|---|---|
| Staff | admin | admin123 | Verify via Server |
| Guest | (Any Registered) | (Set) | Open Registration |
- V3 (Current): LSEP Ethical Compliance, Notification Toggles, and Final Code Hardening.
- V2: API & Room Database Integration, Hybrid Data Sync.
- V1: Initial Prototype, In-memory storage, and basic UI.
Author: Kawozhang Module: COMP2000 Software Engineering 2 Assessment: Assessment 1