Skip to content

submission_Location-Legends #73

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
133 changes: 110 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,114 @@ Welcome to the official repository for the Code-with-Google-Maps-2023 organized

To get started with the Code-with-Google-Maps-2023 repository, follow these steps:

### Submission Instruction:
1. Fork this repository
2. Create a folder with your Team Name
3. Upload all the code and necessary files in the created folder
4. Upload a **README.md** file in your folder with the below mentioned informations.
5. Generate a Pull Request with your Team Name. (Example: submission-XYZ_team)

### README.md must consist of the following information:

#### Team Name -
#### Problem Statement -
#### Team Leader Email -

### A Brief of the Prototype:
This section must include UML Diagrams and prototype description

### Tech Stack:
List Down all technologies used to Build the prototype
### Submission Instructions:

1. Fork this repository.
2. Create a folder with your Team Name.
3. Upload all the code and necessary files in the created folder.
4. Upload a README.md file in your folder with the information.
5. Generate a Pull Request with your Team Name (Example: submission-XYZ_team).

**README.md** must consist of the following information:

- Team Name
- Problem Statement
- Team Leader Email
- A Brief of the Prototype
- Tech Stack
- Step-by-Step Code Execution Instructions
- Future Scope

## Team Name

Location Legends

## Problem Statement

Smart and Effective Management of street parking and parking business.

## Team Leader Email
[email protected]

## A Brief of the Prototype

The "EzPark" prototype is a smart parking solution designed to revolutionize how users find, reserve, and pay for parking spots in urban environments. It leverages cutting-edge technology to create a user-friendly mobile app with dynamic pricing, real-time parking spot availability, and multiple payment options. Here's an overview of its core features:

- **Dynamic Pricing Engine:** The app uses regression models to calculate real-time parking prices based on a variety of factors, including spot availability, location, time, day, and expected duration.

- **Machine Learning Spot Detection:** A Faster R-CNN machine learning model is integrated to provide accurate, real-time information about parking spot availability by analyzing snapshots of parking areas.

- **Google Maps Integration:** The app offers seamless integration with Google Maps APIs, enabling users to find and reserve parking spots near their desired locations with ease.

- **Multi-Payment Gateway:** Users can choose from various payment options, including UPI, credit/debit cards, Paytm, GPay, and more, ensuring a versatile and secure payment experience.

- **Illegal Parking Alerts:** The app employs rule-based algorithms to notify users if they attempt to park in restricted or illegal areas, enhancing compliance and reducing the burden on government resources.

## Tech Stack

The "Code-with-Google-Maps-2023" prototype is built using the following technologies and tools:

- **Google Maps APIs**: Integration with Google Maps APIs to provide accurate location services, enabling users to find and reserve parking spots near their desired destinations.

- **Flutter**: Utilized for mobile app development, creating a user-friendly and cross-platform experience.

- **Pandas**: A versatile data manipulation library used for handling and analyzing data related to parking availability, pricing, and user preferences.

- **NumPy**: A fundamental package for scientific computing with Python, employed for numerical and mathematical operations in data analysis and modeling.

- **TensorFlow**: An open-source machine learning framework for the development of machine learning models, including the Faster R-CNN model for accurate parking spot detection.

- **MongoDB**: A NoSQL database used for data storage, retrieval, and management, accommodating the app's data needs.

- **Firebase**: Integrated for user authentication, real-time updates, and cloud-based services, enhancing the app's functionality and user experience.

This diverse tech stack empowers the "Code-with-Google-Maps-2023" prototype to provide a robust and feature-rich smart parking solution, offering dynamic pricing, real-time spot availability, and secure, user-friendly payment options.


## Step-by-Step Code Execution Instructions

To run the "Code-with-Google-Maps-2023" Flutter project on your local machine and test the prototype, follow these steps:

**Prerequisites:**

- Ensure you have Flutter and Dart installed. If not, refer to the official Flutter installation guide: [Flutter Installation Guide](https://flutter.dev/docs/get-started/install).

**Instructions:**

1. Clone the repository to your local machine.

### Step-by-Step Code Execution Instructions:
This Section must contain a set of instructions required to clone and run the prototype so that it can be tested and deeply analyzed

### Future Scope:
Write about the scalability and futuristic aspects of the prototype developed
2. Navigate to the project folder.
3. Install project dependencies using the Flutter command-line tool: flutter pub get

4. Set up your preferred emulator or a physical device for running the Flutter app. You can use Android Studio, Visual Studio Code, or the Flutter command-line tool to do this.

5. Launch the app on your emulator or device using the following command: flutter run

6. The app should now be running on your emulator or device. You can interact with it and explore the features.

**Note:** Ensure you have the required hardware or emulator setup for testing location-based services and Google Maps functionality.

By following these steps, you can successfully clone, set up, and run the "Code-with-Google-Maps-2023" Flutter project on your local environment for testing and analysis.




## Future Scope

The "Code-with-Google-Maps-2023" prototype is a dynamic and innovative solution to urban parking challenges. As we look ahead, there are several avenues for future development and enhancements:

- **Scalability**: With increased user adoption, the app can be scaled to cover a broader geographical area, serving more cities and regions.

- **Advanced Machine Learning**: The machine learning models can be further refined and diversified to improve parking spot detection accuracy and pricing predictions.

- **IoT Integration**: Implementing IoT sensors for real-time data collection, which can enhance parking spot availability and pricing accuracy.

- **User Feedback Mechanism**: Incorporating a feedback mechanism for users to report parking spot conditions, contributing to real-time data updates.

- **Data Analytics**: Advanced data analytics can provide valuable insights to city administrators for optimizing traffic flow and urban planning.

- **Smart City Integration**: Collaborating with local governments for broader smart city initiatives to alleviate congestion and promote sustainable urban mobility.

- **Environmental Impact Reduction**: Integrating environmental data, such as air quality and noise levels, to assess the app's impact on reducing pollution and improving the quality of life.

- **Additional Payment Options**: Expanding the range of payment options to accommodate emerging digital payment methods.
29 changes: 29 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
13 changes: 13 additions & 0 deletions android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks
74 changes: 74 additions & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.users_app"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 20
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}

flutter {
source '../..'
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation platform('com.google.firebase:firebase-bom:32.2.3')
implementation 'com.google.firebase:firebase-analytics-ktx'
}
69 changes: 69 additions & 0 deletions android/app/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"project_info": {
"project_number": "532809878998",
"firebase_url": "https://uberclone-7fa56-default-rtdb.firebaseio.com",
"project_id": "uberclone-7fa56",
"storage_bucket": "uberclone-7fa56.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:532809878998:android:756b1b7875a68e360be877",
"android_client_info": {
"package_name": "com.example.olacab"
}
},
"oauth_client": [
{
"client_id": "532809878998-78raf24ea5h0vo5m6tubkm4s610h04ad.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAk7kFfe6a9nJQ2Eh_U5rQqxMErORCWuRs"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "532809878998-78raf24ea5h0vo5m6tubkm4s610h04ad.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:532809878998:android:0df308ac83fd845f0be877",
"android_client_info": {
"package_name": "com.example.users_app"
}
},
"oauth_client": [
{
"client_id": "532809878998-78raf24ea5h0vo5m6tubkm4s610h04ad.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAk7kFfe6a9nJQ2Eh_U5rQqxMErORCWuRs"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "532809878998-78raf24ea5h0vo5m6tubkm4s610h04ad.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
8 changes: 8 additions & 0 deletions android/app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.users_app">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
39 changes: 39 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.users_app">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:label="users_app"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyAk7kFfe6a9nJQ2Eh_U5rQqxMErORCWuRs"/>
</application>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.example.users_app

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
}
12 changes: 12 additions & 0 deletions android/app/src/main/res/drawable-v21/launch_background.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />

<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
Loading