⚠️ 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) |
System Architecture · Implementations · Results · 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_storagefor 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.
/
├── 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)
# 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.
Final Exam: Integrated Mobile Application Project
Flutter × Spring Boot × Object-Oriented Analysis and Design