> ⚠️ **WORK IN PROGRESS (WIP)** ⚠️
> *This repository is currently under active development. All code, data, and structures are subject to continuous changes.*

# 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) |
[](https://flutter.dev/)
[](https://spring.io/projects/spring-boot)
[](https://www.postgresql.org/)
[](LICENSE)


[**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*