> ⚠️ **WORK IN PROGRESS (WIP)** ⚠️ > *This repository is currently under active development. All code, data, and structures are subject to continuous changes.*
WalkGuide Banner # WalkGuide: AI-Powered Navigation **Integrated Mobile Application Project** *Flutter Mobile Frontend × Spring Boot Backend × OOAD* ### Group Members | Name | NIM | Responsibility | |------|-----|---------------| | Bambang Herlambang | 5803024019 | - | | Jap Robertus | 5803024004 | - | | Evan William | 5803024001 | Backend Engineer (Spring Boot API & Flutter) | [![Flutter](https://img.shields.io/badge/Flutter-Clean_Architecture-02569B?style=flat-square&logo=flutter&logoColor=white)](https://flutter.dev/) [![Spring Boot](https://img.shields.io/badge/Spring_Boot-REST_API-6DB33F?style=flat-square&logo=spring&logoColor=white)](https://spring.io/projects/spring-boot) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-Database-4169E1?style=flat-square&logo=postgresql&logoColor=white)](https://www.postgresql.org/) [![License](https://img.shields.io/badge/License-MIT-22c55e?style=flat-square)](LICENSE) ![Last Updated](https://img.shields.io/badge/Last_Updated-WIP-blue?style=for-the-badge) ![Author](https://img.shields.io/badge/By-evan--william-brightgreen?style=for-the-badge) [**System Architecture**](#system-architecture) · [**Implementations**](#implementations) · [**Results**](#results) · [**Weekly Progress**](#weekly-progress)
--- ## Overview — WalkGuide System **Core Objective:** How can we build an ultra-low latency, accessible navigation system for visually impaired users while providing real-time oversight for their guardians? This project implements a dual-interface mobile application. The system relies on **On-Device AI (TFLite)** to eliminate network latency during obstacle detection, paired with a robust **Spring Boot backend** for secure authentication and guardian-user pairing. --- ## System Architecture The study follows a strict three-pillar enterprise structure: **Pillar 1 — OOAD (Object-Oriented Analysis & Design):** Comprehensive modeling using Use Case, Class, Sequence, and ERD diagrams. The codebase strictly implements ≥ 4 GoF Design Patterns (e.g., Builder, Singleton, Repository, Strategy). **Pillar 2 — Flutter (Mobile Frontend):** Implements Clean Architecture (Domain, Data, Presentation layers) with BLoC/Riverpod for state management. Uses `Dio` for secure HTTP communication. **Pillar 3 — Spring Boot (Backend API):** A layered architecture (Controller → Service → Repository) powered by Java 17+. Features JWT-based Role-Based Access Control (RBAC) and standardized `ApiResponse` envelopes. --- ## Implementations ### Design A — User Mode (Visually Impaired) An accessibility-first interface that opens directly to an active camera view. - **On-Device AI:** Obstacle detection using TFLite runs locally to ensure zero network latency. - **Hardware Mapping:** Physical volume buttons mapped to critical actions (e.g., auto-accept guardian calls). - **Voice Commands:** Integrated TTS and speech recognition for hands-free navigation. ### Design B — Guardian Mode (Admin) A command center dashboard for oversight and configuration. - **Real-time Monitoring:** Tracks user status and device battery. - **Remote Configuration:** Adjusts AI sensitivity and sets hardware shortcuts for the paired User device. - **Quick Actions:** One-tap voice conferencing and emergency overrides. --- ## Metrics | Metric | Instrument | Target Threshold | |--------|-----------|------| | API Throughput | Apache JMeter / k6 | ≥ 100 req/s under load | | API p95 Latency | Apache JMeter / k6 | < 500ms | | UI Frame Rate | Flutter DevTools | ≥ 90% frames < 16ms | | Code Coverage | JaCoCo | ≥ 70% (Service & Controller) | --- ## Technical Parameters **Backend Phase (Spring Boot):** - Environment: Java 17+, PostgreSQL / H2 Database, Flyway Migrations. - Security: Spring Security, JWT (Access + Refresh Tokens). - Documentation: OpenAPI 3.0 (Swagger UI). **Mobile Phase (Flutter):** - Environment: Flutter 3.x, physical Android device testing (Profile Mode). - Storage: `flutter_secure_storage` for JWT. - Routing: GoRouter with role-based authenticated routes. --- ## Repository Structure > 🚨 **DISCLAIMER:** This repository is in active development. The directory tree below is a **conceptual reference snapshot** of the intended architecture. It **does not** represent the exact, current state of the files. ```text / ├── walkguide-backend/ # [Spring Boot Engine] │ ├── src/main/java/com/walkguide/ │ │ ├── config/ # Security & Swagger configs │ │ ├── controller/ # REST Endpoints │ │ ├── dto/ # AuthRequest & ApiResponse │ │ ├── entity/ # JPA Entities │ │ └── exception/ # GlobalExceptionHandler │ └── pom.xml │ ├── walkguide-mobile/ # [Flutter Frontend] │ ├── lib/ │ │ ├── core/ # API Service, Storage, Failures │ │ ├── features/ │ │ │ ├── auth/ # Clean Arch: domain, data, presentation │ │ │ └── home/ # User & Guardian Dashboards │ │ └── main.dart │ └── pubspec.yaml │ ├── ooad-docs/ # [Design Artifacts] │ ├── diagrams/ # PlantUML / draw.io exports │ └── Traceability_Matrix.md │ └── README.md ```` ----- ## Quick Start (WIP) ```bash # 1. Clone the repository git clone [https://github.com/YourGroup/walkguide-final-exam.git](https://github.com/YourGroup/walkguide-final-exam.git) # 2. Run Backend (Spring Boot) cd walkguide-backend ./mvnw spring-boot:run # 3. Run Mobile (Flutter) - Connect to local backend cd ../walkguide-mobile flutter pub get flutter run ``` ----- ## Results > ⏳ **Work In Progress:** Results are populated as benchmarking phases are completed. | Metric | Baseline | Final Optimized | Status | |--------|-----------------|----------------------|---------| | Cold Start Time | *Pending* | *Pending* | ⏳ | | Memory Leak (10 Navs)| *Pending* | *Pending* | ⏳ | | API Error Rate | *Pending* | *Pending* | ⏳ | ----- ## Weekly Progress | Week | Target | Status | |------|--------|--------| | 1 | Topic proposal, Use Case definitions, Repo setup | ✅ Done | | 2-3 | OOAD diagrams, OpenAPI YAML drafted | 🔄 In Progress | | 4 | Clean Architecture & Spring Boot layers implemented | ⏳ Pending | | 5 | Mid-sprint benchmarking (Flutter + Backend) | ⏳ Pending | | 6-7 | Feature freeze, AI integration, Integration testing | ⏳ Pending | | 8 | Final benchmarks, Report writing, Demo Video | ⏳ Pending | ----- ## Core Objectives **O₁ (Performance):** The dual-platform architecture must maintain a 60fps UI frame rate while handling concurrent backend requests without exceeding 500ms latency. **O₂ (Accessibility):** The User mode must require zero visual interaction post-login, relying entirely on haptics, voice, and physical button mapping. **O₃ (Traceability):** Every major feature implementation must be directly traceable back to the pre-development OOAD artifacts and GoF design patterns. ----- ## License Distributed under the [MIT License](https://www.google.com/search?q=LICENSE). ----- *Final Exam: Integrated Mobile Application Project*
*Flutter × Spring Boot × Object-Oriented Analysis and Design* ```