- Develop a web or a mobile application to demonstrate the application of Face Recognition technology.
- Solution: Today people have many credentials, bank cards, and important notes that they can't remember the details of. They can't write the credentials anywhere as it is a threat to the security of the credentials. With FacePass, users can keep their credentials safe as it requires face recognition and authentication. It also asks for the password during the login after face authentication, making it highly secure.
- Face Pass mobile application was built during Microsoft Engage 2022.
- It is a Password Manager app where users can store their credentials and important notes.
- User authentication using Face ID via Tensorflow Lite.
- Adding bank cards and websites login credentials.
- Storing important notes.
- The data is stored on the cloud to access from any device.
Android and iOS devices
-
Flutter:
Flutter is an open source framework to create high quality, high performance mobile applications across mobile operating systems - Android and iOS.
-
Tensorflow lite:
TensorFlow Lite is an open source deep learning framework for on-device inference.
-
Flutter + Tensrorflow lite = tflite_flutter package:
TensorFlow Lite plugin provides a dart API for accessing TensorFlow Lite interpreter and performing inference. It binds to TensorFlow Lite C API using dart:ffi.
- tflite_flutter
- camera
- google_ml_kit
- image
- get_it
- sqflite
- tflite
- flutter_speed_dial
- fluttertoast
- firebase_core
- firebase_auth
- cloud_firestore
- flutter_launcher_icons
Agile is a development methodology adopted by the software industry. It is an iterative approach to software development. It promotes teamwork. It’s centered around adaptive planning, self-organization, and short delivery times. It’s flexible, fast, and aims for continuous improvements in quality, using tools like Scrum and eXtreme Programming.
SCRUM is a subset of Agile, a framework for developing software. SCRUM takes advantage of different techniques to achieve goals in Agile. It promotes an iterative model where the planning is performed in a concise term. The basic time working unit is the sprint. SCRUM teams always reason in sprints, and their planning is limited to sprints.
- Sprint 1 (May 4): Sprint Planning, Research, and Design - Researched all three challenges and finalized the first challenge as I found it fascinating. After researching many face APIs used for face recognition, I finalized Tensorflow Lite. I searched for tutorials and designed the flowchart of the app.
- Sprint 2 (May 11): Software development and debugging - Started the development process by taking help from YouTube tutorials and online articles.
- Sprint 3 (May 18): Built a cross-platform mobile application using Flutter and Firebase for the first time. I encountered occasional bugs, which I debugged timely and made the required changes in the UI and color scheme to make it more attractive.
To install and run the project on your local system, following are the requirements:
- Ensure that the device uses Android or iOS.
- Ensure that the device has a front camera to detect the face.
1- Clone the repository:
git clone https://github.com/Tanyaverma3114/face_pass.git
2- Open the folder:
cd face_pass
3- Install dependencies:
flutter pub get
4- Run on device (Check device connected or any virtual device running):
flutter run
- First signup through face detection and enter name and password.
- Login to the app through face recognition and authentication and enter the password.
- The Home page has a drawer and an add button. An user can add their important notes, website and bank card details directly by clicking on the floating add button.
- The drawer has the options of Bank Cards, Websites, Notes and Logout.
- The 'Bank Cards' option in the drawer is the place where an user can check all the saved cards.
- It also has a floating add button through which an user can add details of other cards.
- The 'Websites' option in the drawer is the place where an user can check all the credentials of different websites saved by them.
- It also has a floating add button through which an user can add credentials of other websites.
- The 'Notes' option in the drawer is the place where an user can check all the saved notes.
- It also has a floating add button through which an user can add new notes.
- The 'Logout' option in the drawer logs out the user.