Matrimonial Application using Flutter
As part of my summer internship, I was given a task to build a matrimonial application using flutter.
What is Flutter?
Flutter is an open-source UI software development kit created by Google. It is used to develop cross-platform applications for Android, iOS, Linux, Mac, Windows, and the web from a single codebase.
The major components of Flutter include:
- Dart platform
- Flutter engine
- Foundation library
- Design-specific widgets
- Flutter Development Tools (DevTools)
The flow of the Application
Users have to first register themself into an application. They have to first verify their phone number after that they have to enter their basic details like their name, birth date, gender, email id, and location.
Once the user registers themselves, they get their Password for login into the app via the Email address they provided at the time of registration. Now they can log in to the app by entering their phone number and password.
After successful login to the app, the user will see the home screen displaying users’ cards around their location. Users can see his/her profile by clicking on the card also they can swap left if they don’t like or else they can swap right for adding request. Also, they can chat with each other by connecting with each other.
Register & Login
While creating an account/ Register into an application users have to verify their number. Which is done by Firebase Phone Authentication. After successful phone verification, they have to enter their details like name, BOD, gender, location. after successful registration they will get their password in an email they provided while registering themself.
Users can log in by entering their registered phone number and password. Also, they can change their password anytime.
Also, Users have to enter their basic information about themself, about family, partner preferences, etc. Below is the list of information in a specific form.
Change Password
After successful registration users will get the password on their registered email address. After the user can log in to the app. the user can change that password by entering old and new passwords.
About Me:
- Marital Status (Single, Divorced, Widow)
- About user
- Job title
- Company
- Education
- Height
- Cast
- Sub cast
- Language
- Location
This screen is built using various flutter widgets like SingleChildScrollview, TextFromField, etc. This screen will take all the details listed above and it will add/update these details for the user. After taking these details from the user I will call the API to update user information.
Along with these users can upload their photos and also set and update their profile photo any time. Users can upload images from the gallery also they can capture an image using a camera. After selecting or capturing an image users can crop, edit an image after that they can upload it. Also, they can delete any image at any time.
About Family:
- Father’s Profession
- Mother’s Profession
- Number of Brothers (No. of Married brothers and Total brothers)
- Number of Sisters (No. of Married sisters and Total sisters)
This screen is built using various flutter widgets like SingleChildScrollview, TextFromField, etc. This screen will take all the details listed above and it will add/update these details for the user. After taking these details from the user I will call the API to update user information.
Partner Preferences
- Age Range
- Location
- Minimum Education
- Other
This screen is built using various flutter widgets like SingleChildScrollview, TextFromField, etc. For asking about the user’s location, I used a Mapbox API to give suggestions to the users.
This screen will take all the details listed above and it will add/update these details for the user. After taking these details from the user I will call the API to update user information.
Request Features
The request will be sent once any user swaps the card in the right direction. All receiver can see their request tab in their there is 4 type of screen.
- Received Request
- Sent Request
- Accepted Request
- Rejected Request
Here in this tab users can find all the requests they received or sent. Also, they can check their previously accepted or rejected requests. Also in the received request part they can accept or reject that request by reviewing the profile.
Profile of any person
Users can see the full profile of any other user just by tapping on the card of any user. In this profile, all the information related to education, family, partner preferences, and photos of that user will be displayed using the singleChildScroll widget.
Subscription plans
This app is subscription-based, so users have to buy a subscription to access features like seeing the contact information of any other user, more connections they can make within a specific time, etc.
Chatting Feature
This application also has messaging feature. user can send a message as a text, image. Also calling feature is there so users can use the calling and video call features as well. This feature is remaining and it will be done by respective company’s employee.
In this task Design and API integration are done by me. This application is backed by Rest API which is done by another intern of the company.
During this internship and by developing this application I learned so many things like, how to integrate the REST API with the flutter application, How to implement phone number verification using firebase phone authentication, and how I explored different types of flutter widgets, etc.