Your Solution to Re-Charging EV Vehicles.
Why EV-Sathi ?
We examine a new, upcoming generation of vehicles that run on electric power supplied by onboard batteries in a smart city environment. Charging at home and in public areas are the best recharging option. As charging stations are shared resources, Cooperating EVs have the potential to avoid unbalanced use of charging stations and long wait times.
India has seen a significant increase in the number of electric vehicles (EVs) since the past year. Yet the EV owners still face trouble while trying to recharge their vehicles.
About The Project
Our application uses a cost-effective solution for EV owners to find the nearest charging station and recharge their vehicles. It also supports booking of charging stations for those who want to recharge their vehicles at a scheduled time.The dynamic nature of the application makes it easy to manage multiple vehicles from one device.
Key Features Implemented
Awesome UX and easy to use friendly interface
Manage multiple vehicles from one device
Find the charging stations near you in a Built-in Map with real-time location updates
Get status of EV charging stations along with distance, chargers, etc.
Get a dyanamic price while booking slot for your EV based on currently free slots.
Navigation system to help you find the charging station in a short time using Direction and Places API.
View booking history of your EV
Estimate cost and time for your EV in a journey with an awesome Pricing Calculator.
- Firestore Database
- Google Cloud Platform
- Google Maps API
- Places API
- Direction API
- ML Model used- Multi-Regression Model
- Dataset used- EV Station pricing dataset
- Genetic Alogorithm
You can test Ev Sathi in your own development environment. This section shows you how:
You’ll need to set up the IDE and mobile device emulator, or any mobile testing device on your local system.
Flutter Environment: You’ll need to have the following installed:
Ensure you are testing the app using Flutter version 2.10.3 and above.
For checking flutter version:
- Run flutter –version in terminal
If your version is not upto date, follow these steps to upgrade:
- flutter channel stable to switch to the channel having stable version of flutter updates
- flutter upgrade to get the latest flutter version
Development Environment: For setting up the development environment, follow the steps given below.
Clone this repository after forking using git clone https://github.com/pnkr01/EV-Sathi-HACKKJSCE.git
Check for flutter setup and connected devices using
Get all the dependencies using
flutter pub get
lib --> screen --> contsant.
Place your Google Map API Key.
How To Get Google Map API Key? For setting the Map, follow the steps given below.
- Sign In to Google Account.
- Go To Google Console.
- Enable Direction Api.
- Enable Places Api.
- Go to Credentials
- Click on create credentials.
- Copy the API Key.
Run the app using
For help getting started with Flutter, view our
online documentation, which offers tutorials,
samples, guidance on mobile development, and a full API reference.
This project follows MVVM architecture with following structure:
EV-Sathi-HACKKJSCE/lib/ ├── components/ # resuable widget i.e buttons,card,error dialog,loading dialog, marker design, text field. ├── button.dart ├── button_nav_route.dart ├── card.dart ├── errordialog.dart ├── loading_dialog.dart ├── on_marker_tap.dart ├── textfiled.dart └── progress_bar.dart ├── models/ └── nearby_ev_station_results.dart # model class for fetching the near by ev station. ├── otp/ # Widgets Involved in Designing OTP Screen, Sending OTP To user,verifying otp and logging them sucessfully. ├── components/ └── .... ├── newuser/ └──.... └── olduser.dart ├── screen/ #Various screen involved. ├── auth/ └── .... #screen involved in authorization i.e, login, sign in. ├── constant/ └── ... #constant needed by auth screen ├── marker_container/ └── ... # Designing Maker Container. ├── profile_screen/ └── ... #screen involved in Profiling. ├── splash/ └── ... #screen involved in Splash Screen.. ├── vechile_add/ └── ... #screen involved in Vechile Addition. ├── dashboard.dart # main part of driving functionality. └── map_page.dart # Map Page. ├── sidebar/ | ├── components/ └── ... # screen involved in side drawer | └── drawaer.dart/ # main part of drawer. ├── constant.dart/ #constant needed by splash screen. ├── global.dart/ #global file needed for all Widget. ├── routes.dart #routes for Screens. ├── size_config.dart #size config for reponsivness. └── main.dart # Heart of this App.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature)
- Commit your Changes (
git commit -m 'Add some AmazingFeature')
- Push to the Branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
Distributed under the MIT License. See
LICENSE for more information.
Team Name – Team X-Legion Coders (KJSCE Hack 6.0 Hackathon)
Project Link: https://github.com/pnkr01/EV-Sathi-HACKKJSCE/
Youtube link: https://www.youtube.com/watch?v=qD1OsIGTaZE
Made with ♥ by Team X-Legion Coders