Skip to content

wenruiq/find-my-path

Repository files navigation

Watch the video
(Click Image to View YouTube Demo)

Find My Path

Crowd-sourced Navigation Mobile App for the Vision Impaired

Co-developed by Wenrui and Lifu for non-profit organisation - Etch Empathy

Explore the docs · Report Bug · Request Feature


Table of Contents

About the Project

Find My Path is an MVP mobile app designed to connect 50,000+ visually impaired people in Singapore to volunteers for navigational assistance.

Using real-time location services, live video/audio feed, and a built-in text & image messaging system, the volunteer can help guide the vision impaired user to their desired destinations safely.

A strong emphasis is placed on providing excellent accessibility support for the users, especially in terms of screen-reading capabilities.

Built With

Key Features

Login

Requesting for Help (Vision Impaired User)

Search for Destination

Attach Photo and Submit Request

Accepting a Request (Volunteer User)

Push Notifications

Accept a Request

Messaging and Location Sharing

Video Call

See demo in video

Write a Review

Getting Started

Dependencies

To run the application, the following needs to be installed:

  • Visual Studio Code (VSC)
  • Flutter (follow the instructions at https://docs.flutter.dev/get-started/install)
  • Android Studios (instructions included in Flutter installation guide as well)
  • iOS Simulator for Windows (Mac users can use the inbuilt Simulator app)

You will also need a Firebase account if you don't have one. (https://firebase.google.com/)

VSCode Configuration

If you have worked on Flutter projects before, skip this section

  • Go to Extensions
  • Search for "Dart" and "Flutter"
  • Install both extensions

Launch Guide

  • Ensure that your android emulator is launched (or plug in a real android device)
  • At the bottom right hand corner of VSC, check that your emulator is detected (as shown below)

image

  • Open terminal at the root directory of the project and run the following commands
flutter pub get
flutter run
  • The build process will take awhile the first time so don't worry
  • FindMyPath should successfully boot up in your emulator

(Preferred) Alternatively, to launch the project, you can click into any .dart files in the repository, go to the top toolbar of VSC > Run > Run Without Debugging. This opens a floating control panel in VSC (as shown below) which allows you to perform Hot Restarts with ease.

image

Firebase CLI Setup Guide

If you prefer to work with Firebase using the terminal, you can configure firebase as shown below

# first create project in your own firebase account 

npm install -g firebase-tools #install firebase cli

firebase login 

firebase projects:list # view list of project 

firebase use --add #add in firebase project  

firebase serve 

Repository Folder Structure

/assets - images used
/fonts - special fonts used
/functions - Firebase cloud functions
/lib - source code

/lib/main.dart - home page
/lib/providers - data model for common objects
/lib/screens - all the screens that users can see
/lib/theme - customize colour theme and configurations
/lib/widgets/[feature] - widgets used for a specific feature

Firestore Data Structure

users/[userID] - All user details are stored here (does not include passwords)
users/[userID]/requests - All completed requests by a specific user are stored here

requests/[requestID] - All requests (Pending/Ongoing/Completed) are stored here
requests/[requestID]/messages - All messages sent in the chat room are stored here
requests/[requestID]/call - A document used for storing call state

Roadmap

See the open issues for a list of proposed features (and known issues)

Contributing

The open source community is such an amazing place for us to be inspired, learn, and create. I greatly appreciate any contributions you make to this project!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AwesomeFeatures)
  3. Commit your Changes (git commit -m 'Added some awesome features')
  4. Push to the Branch (git push origin feature/AmazingFeatures)
  5. Open a Pull Request

License

Distributed under the MIT license

Contact

Wenrui - wenrui119@gmail.com

Lifu - lifuhuang97@gmail.com

Project Link: https://github.com/wenruiq/find-my-path

About

Crowd-sourced navigation mobile app designed for the vision Impaired, built with Flutter, Firebase, Google APIs & Agora

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published