(Click Image to View YouTube Demo)
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
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.
See demo in video
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/)
If you have worked on Flutter projects before, skip this section
- Go to Extensions
- Search for "Dart" and "Flutter"
- Install both extensions
- 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)
- 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.
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
/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
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
See the open issues for a list of proposed features (and known issues)
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AwesomeFeatures
) - Commit your Changes (
git commit -m 'Added some awesome features'
) - Push to the Branch (
git push origin feature/AmazingFeatures
) - Open a Pull Request
Distributed under the MIT license
Wenrui - wenrui119@gmail.com
Lifu - lifuhuang97@gmail.com
Project Link: https://github.com/wenruiq/find-my-path