Skip to content

The mobile front-end of the price finder application developed using flutter

Notifications You must be signed in to change notification settings

donheshanthaka/Price-Finder-Flutter-APP

Repository files navigation

Price Finder

price_finder_mockup

Price Finder is a mobile application developed using Flutter framework to identify the current market price of vehicles in Sri Lanka. It is capable of predicting vehicle models based on image inputs from the device camera and gallery with an accuracy of 97.26%. The image recognition feature is powered by a vehicle image classification model based on convolutional neural network (CNN) trained using a custom dataset created specifically for Sri Lankan vehicle market. The CNN model is hosted in Google Cloud Platform (GCP) using a Flask API which acts as the backend for the price finder application. It also holds the capability to perform a market search based on the identified vehicle model and return the current market price along with the vehicle model details to the user through an API call. Currently the application is in beta release which only includes identification up to 4 vehicle models.

🔬 Overview of the tasks achieved within this project

  • Implementation of MVC architecture pattern to structure the code base which separates internal representations of information from the UI modules.
  • Effectively handled exceptions to inform the user of on conflicting situations without crashing the program.
  • Comprehensive UI/UX design of the application to provide seamless user experience and interaction with unique custom made graphics and animations.
  • Implementation of API calls for the demanding computational tasks, thus reducing the performance requirements per device and increasing the range of devices capable of running the application without lags.
  • Implementation of unit testing and widget testing to guarantee the application performs its intended functionality.
  • Modular project structure according to industry standards which increases the scalability of the application with minimal breaking changes.
  • Integration of environment configuration to easily switch between development and production environments during development.

🧱 Tech Stack

Framework / Package
Flutter
image_picker: 0.8.5+3
path_provider: 2.0.11
http: 0.13.4
mvc_pattern: 8.110
rive: 0.9.0
flutter_image_compress: 1.0.0
flutter_icons: 1.1.0
Backend Technologies Project Repository
Price Finder API Github-Repo
Vehicle Image Classification Model Github-Repo

📱 Demonstration

📍 Note: Beta version could take up to 40 seconds due to server limitations.

54654_low

⚙ Setup Instructions

Prerequisites:

Clone the repository

  • Navigate to a folder in which you would like to setup the project.
  • Open up a terminal in that folder and enter the command below to clone the repository.
    git clone https://github.com/donheshanthaka/Price-Finder-Flutter-APP.git
  • Navigate to the project folder

Get the dependencies

  • Run the command mentioned below in the root of the project to get the dependencies.
	flutter pub get

Setup the price finder API

In order to run this application on the local machine, an instance of the backend api should be available as well. It handles the core functionality of the application to identify vehicles and retrieve current market price.

📌 To setup the backend api locally follow the documentation of the repository mentioned bellow before continuing further on the setup process.

Create environment configuration files

  • A sample configuration file has been provided under assets folder.

assets/config/app_config_example.json

example:

{
    "API_URL": "YOUR_API_URL"
}
  • Create a new json file named app_config_dev.json in the same location as the sample.
  • Copy the content of the example json file and change the API_URL value to the ip address used in setting up the API.
  • Do the same if you are making a production server as well and name that file app_config_prod.json and add the production API_URL.

🖥 Run Locally

📌 Instructions provided for VS Code

Run the API server locally

Start the android emulator

  • Press ctrl + shift + p
  • select Flutter: Select Device and select the android device.
  • Go to Run and Debug menu and from the dropdown in top left corner select price_finder_dev.
  • press ▶ start debugging button and the app will start running on the emulator.

📍 Note: Since Android emulator doesn't come with the vehicle images needed to test the full functionality, custom images can be added to the emulator by going to the gallery and performing a drag and drop from the computer to the emulated device. The added images will not appear instantly therefore, a cold boot is required after a few seconds the images have been copied.

📡 Usage / Examples

The application's functionality can be tested by scanning the sample images given below. Scanning each image will provide you with the identified model details along with the current market price of the respective model in Sri Lanka.

📍 Note: Beta version could take up to 40 seconds due to server limitations.

Toyota Aqua 2014
Toyota Aqua 2014
Alto 2015
Alto 2015
Hero Dash 2016
Hero Dash 2016
Wagon R Stingray 2018
Wagon R Stingray 2018

🚀 Deployment (Google Play Store)

To be added....

About

The mobile front-end of the price finder application developed using flutter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published