/CSE461-SWE-Project

Repository for CSE461 Spring 2020 Semester project - IIIT Hyderabad

Primary LanguageHTML

Term Project

Team Name: Colonel Panic

Submitted By: Group No. 3
Software Engineering Project, CSE461 Spring 2020, IIIT Hyderabad



Project Team


Shivang Shekhar


Pratik Mandlecha


Rachit Jain

Raghav Mittal


Runa Chand


Savita Bhat

Documents

  1. Proposal Document
  2. High-level Design Document
  3. Slides

Screenshots

makephotogallery.net_1580238239.jpg

User Interactions

video.gif

About Flutter

Flutter is an app SDK for building high-performance, high-fidelity apps for iOS, Android, web (beta), and desktop from a single codebase.

The goal is to enable developers to deliver high-performance apps that feel natural on different platforms. We embrace differences in scrolling behaviors, typography, icons, and more.

Why Flutter?

Why use Flutter? What are some advantages of Flutter? It helps you:

  • Be highly productive
  • Develop for iOS and Android from a single codebase
  • Do more with less code, even on a single OS, with a modern, expressive language and a declarative approach Prototype and iterate easily
  • Experiment by changing code and reloading as your app runs (with hot reload)
  • Fix crashes and continue debugging from where the app left off
  • Create beautiful, highly-customized user experiences Benefit from a rich set of Material Design and Cupertino (iOS-flavor) widgets built using Flutter’s own framework
  • Realize custom, beautiful, brand-driven designs, without the limitations of OEM widget sets

Flutter Architechture

Flutter

Machine Learning

We have implemented clustering of data points which represent the patients infected by corona virus in Mumbai city. Clustering will generate groups of closed data points. For this we have used DBscan Algorithm.

About DBScan

It stands for Density based clustering algorithm.It has played a vital role in finding non linear shapes structure based on the density. Density-Based Spatial Clustering of Applications with Noise (DBSCAN) is most widely used density based algorithm. It uses the concept of density reachability and density connectivity.

  • Density Reachability - A point "p" is said to be density reachable from a point "q" if point "p" is within ε distance from point "q" and "q" has sufficient number of points in its neighbors which are within distance ε.
  • Density Connectivity - A point "p" and "q" are said to be density connected if there exist a point "r" which has sufficient number of points in its neighbors and both the points "p" and "q" are within the ε distance. This is chaining process. So, if "q" is neighbor of "r", "r" is neighbor of "s", "s" is neighbor of "t" which in turn is neighbor of "p" implies that "q" is neighbor of "p".

Why DBScan?

  • It Does not require a-priori specification of number of clusters.
  • It is Able to identify noise data while clustering.
  • It is capable of finding arbitrarily size and arbitrarily shaped clusters not like K-means which gives only circular clusters.
  • DBSCAN is one of the most common clustering algorithms and also most cited in scientific literature
  • DBSCAN requires just two parameters and is mostly insensitive to the ordering of the points in the database. (However, points sitting on the edge of two different clusters might swap cluster membership if the ordering of the points is changed, and the cluster assignment is unique only up to isomorphism.)

Creating Zones

Once we have the clusters, we are using the number of patients in the cluster and the population pointers (Red, Blue, Orange) in that region of cluster to determine the severity of the zones and have generated 5 zones from it.

Images of Clusters and Zones

DBScan Clusters - Clusters generated by DBScan Algorithm along with latituedes , longitudes.

Zones - Generated Zones.

Dependencies

This project is built with various awesome open sourced libraries

  • google_maps_flutter - to show map on screen (Still in beta version)
  • flutter_bloc - to mantain state and make every widget independent using blocs
  • bloc - to listen events on taps by user and dispatch new state to other widgets
  • equatable - to make models comparable (Nice Library)
  • shimmer - to show nice loading effect
  • location - to get current location of user (Feature to be developed)

Installation

Add your API_KEY and your own credentials from your firebase project to android and ios folders. Run following command in cmd and then run your app

$ pub get