Giter Club home page Giter Club logo

plugev's Introduction

PlugEv

About

This project is an Android app that uses data from Open Charge Map to display charging points for electric vehicles on a map. Charging points are being shown based on the current displayed camera position with appropriate distance radius based on a current zoom level of a device. Data is being re-fetched once the camera position changes. All points of interest (POIs) are displayed using custom made markers with marker clustering implemented. The app allows to filter POIs by power level and access type, also displays a more detailed information upon selecting any particular POI using the BottomSheet. Pressing FAB within the BottomSheet allows the user to open a turn-by-turn navigation towards a given POI. The app also contains a handy search bar which allows to enter a postcode and move a camera towards the said destination. Postcode geolocation data is supplied by Postcodes.io.

Screenshots

Key Features

This app uses the latest cutting edge libraries and tools:

  • 100% written in Kotlin;
  • Jetpack Compose (with the exception of Google Map view and splash screen) - the Android’s modern declarative UI toolkit;
  • Kotlin Coroutines for asynchronous programming;
  • Hilt for dependency injection.

Other features:

  • MVI + MVVM architecture;
  • Clean Architecture (structured on a package level);
  • Google Maps Android SDK;
  • Retrofit for consuming RESTful Apis;
  • JUnit4, MockK for Unit testing (TDD approach).

Architecture diagram

Packages in this project are structured and separated into 3 distinct layers: Domain, Data, Presentation

Presentation layer uses MVI architectural pattern (based on MVVM)

Development setup

In order to clone and be able to run the code you will need to supply API Keys for the Google Maps SDK and Open Charge Map API:

After you've acquired API keys you should set them within the local.properties file in your project folder as follows:

googleMapsApiKey=< Google Maps SDK Api key goes here >
openChargeMapKey=< Open Charge Map Api key goes here >

APIs used

License

PlugEv
Copyright (C) 2021  Alexei Sevcisen

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or 
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

plugev's People

Contributors

alexsheva-mason avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

plugev's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.