2026-04-22 20:57:19 +07:00

7.5 KiB
Raw Blame History

⚠️ 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 Spring Boot PostgreSQL License

Last Updated Author

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_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.

/
├── 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