Skip to content

Mobility-Scooter-Project/mobility-scooter-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

177 Commits
 
 
 
 
 
 
 
 

Repository files navigation

mobility-scooter-application

This README is a high level overview of the mobile app. For a more in-depth technical introduction, please see this document: https://docs.google.com/document/d/1W_scMhpFDm7tW4pXxeFg1GmnmTtC6k02_7rlP6oJ3j0/edit?usp=sharing

Table of Contents

Introduction

In today's aging global population, mobility scooters are not just a convenience but a necessity for maintaining the independence and quality of life of the elderly and those with mobility challenges. Although insurance often covers these mobility aids, their usage rate remains surprisingly low. One of the primary reasons for this underutilization is the fear and apprehension users have when it comes to operating these vehicles, primarily due to safety concerns.

Purpose

The core objective of this project is to bridge the existing safety assessment gap for mobility scooter users. Mobility scooters, indispensable for maintaining a good quality of life, come with their own set of risks. These risks are multi-faceted, arising from the users' driving skills, the environment in which these scooters are operated, and the specific safety features of different scooter models. This project aims to offer a comprehensive evaluation system that assesses all these factors, thereby alleviating safety concerns and encouraging more widespread use of mobility scooters.

Features

User Authentication

  • Utilizes Firebase Authentication for secure login and signup processes.
  • Allows for password recovery and account management.

Video Recording

  • Provides a user-friendly interface to record driving sessions.
  • Records high-quality video that can be later analyzed for safety assessments.
  • Automatically saves the videos in a secure cloud storage.

Session History Kotlin MVVM

  • Implemented using Kotlin and the MVVM architecture for optimal performance and scalability.
  • Allows users to view a history of their driving sessions, complete with metadata like date, start time, and session length.
  • Uses Firebase Firestore to fetch and display session histories, ordered by the latest sessions for easy access.

Video Analysis and Pose Estimation

  • Employs advanced machine learning algorithms for post-analysis of recorded driving sessions.
  • Provides pose estimation to assess the user's posture and alignment during the drive, which can be critical for safety.

Implementation

User Authentication

  • Integrated Firebase Authentication to handle user signup, login, and password recovery processes.
  • Supports multiple authentication methods, including email/password and social media accounts.

Video Recording and Storage

  • Leveraged CameraX API for improved video recording performance and user experience.
  • Employed AES256-GCM HKDF 4KB encryption to ensure the secure storage of recorded videos.
  • Videos are stored on Firestore, facilitating easy retrieval for subsequent use and analysis.

Session History Using Kotlin MVVM

  • Utilized Kotlin and the Model-View-ViewModel (MVVM) architecture for efficient management of data and UI.
  • Real-time session history retrieval and display are achieved through Firebase Firestore.
  • Sorting of sessions by recency is made possible by Firestore's query capabilities.

Server and Data Classification

  • Developed a secure server environment on a Jetstream2 VM instance using Flask.
  • Communication is encrypted via HTTPS and authenticated through SSL certificates.
  • Data classification is carried out using a pre-trained TensorFlow model on the server side.

Accessibility

  • Developed with a focus on accessibility to make the app usable for people with varying abilities.
  • Elements like easily readable fonts, contrasting color schemes, and intuitive navigation enhance accessibility.
  • App is designed to be fully compatible with Android Talkback feature.

Installation

[]

Usage

[]

Support

[]

Project Status

  • Enhance user-to-doctor communication for more personalized safety recommendations.
  • Collect more data to improve the machine learning models for better driving analysis.

Task Updates

Task Description Assigned To Completed? Tested?
Add Delete Video Feature Allow users to delete previous sessions. Andrew No No
Verify User's Position Before Recording Create a screen before a user records that asks them to send a screenshot of their body to the server. Justin No No
Add Dark Mode Implement a Dark Mode Feature. Alvan No No
Make Screens Scale Make each screen scale with different screen sizes rather than stay a fixed size. Kenia No No
Restyle Login & Register Screens Restyle the login and reigster screens to be more visually appealing. Justin & Alvan No No
Thumbnail Bug Fix the bug where some thumbnails are not created properly. Andrew Yes Yes
Hamburger Menu & Logout Feature Implement a hamburger menu that appears from the side and add a feature for the users to log out. Justin Yes Yes
Fix Bottom Nav Bar Make nav bar persistent rather than hard coded in each screen. Justin Yes Yes
Migrate Server Migrate Flask server from GCP to Jetstream2. Melvin Yes Yes
Implement Talkback Compatibility Add content descriptions to each UI element for the screen reader. Andrew Yes Yes
Fix Permissions Refactor the way the app is asking for user's permissions. Alvan Yes Yes
Fix Crashing & Freezing Issues Stop the app from freezing and crashing when the drive menu is opened. Alvan + Melvin Yes Yes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages