2026-05-04 11:20:53 +07:00
2026-04-22 20:57:19 +07:00
2026-04-22 20:57:19 +07:00
2026-04-22 21:01:00 +07:00
2026-05-04 11:20:53 +07:00
2026-05-02 02:43:47 +07:00
2026-05-02 02:43:47 +07:00
2026-05-02 02:43:47 +07:00
2026-04-22 20:57:19 +07:00
2026-04-22 21:01:00 +07:00

⚠️ 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

Description
This is our project for Final :D
Readme MIT 29 MiB
Languages
Dart 54.4%
Java 29.8%
JavaScript 5.7%
TeX 4.8%
HTML 4.3%
Other 0.8%