Giter Site home page Giter Site logo

openchargemap / ocm-system Goto Github PK

View Code? Open in Web Editor NEW
98.0 98.0 33.0 48.88 MB

Open Charge Map is the global public registry of electric vehicle charging locations. Established 2011. Help wanted.

Home Page: https://openchargemap.org

License: MIT License

C# 55.85% JavaScript 15.32% CSS 0.93% HTML 17.57% TypeScript 9.58% Dockerfile 0.07% SCSS 0.67%

ocm-system's People

Contributors

ardevd avatar cybersol795 avatar dependabot[bot] avatar iboboc avatar jainpuneet86 avatar johan12345 avatar mrw298 avatar remuslazar avatar solarpete avatar webprofusion-chrisc avatar zymurgic avatar

Stargazers

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

Watchers

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

ocm-system's Issues

Two replicas of OCM on different domains

I noticed, that there are these two domains of OCM:
openchargemap.COM vs.openchargemap.ORG

However I am only able to sign in to .org one (that is why I think they are replicas). Trying to sign in to openchargemap.com using my Google+ account produces the following error:
image

API: Implement search along polyline

Allow searching along a polyline, expanded to a given search distance (buffer polyline to a polygon). This is especially useful for searches along a route.

API: Implement search within a bounding box

Searching within a bounding box (viewport) enables interactive map queries when the user zooms/pans a map. a bounding box would consist of a North West and South East LatLong Pair.

The integration between website and the embedded webapp should be improved

The website seems to be working like a mixture of relatively standalone webapp around which a website is built to make it more usable on PCs.

However this approach led to some duplicated features which are not always consistent and sometimes have to be changed twice (in website menu and also in the webapp menu, which is not clearly marked as menu), e.g.:

  1. If you change a language in the website menu, it only translates the website part. To get the webapp part changed, you need to set its language separately. This could/should be controlled by one menu only (preferably the website's one).
  2. It is possible to be signed in the webapp, but not in the website at the same time (see picture below).
    image
  3. The "browse all locations" from the website's menu duplicates the functionality of the page invoked by the filter button in the webapp. In this sense one could be removed and both buttons could link to the same page. I would suggest keeping the one from webapp, since it is currently better at options to filter (https://plus.google.com/u/0/+CoreLohse/posts/8jiA5CiD6EW?cfem=1). Moreover you can see the results on the map as well, not only in the list.
  4. Similarly two pages exist for adding location with different functionality (website has better than webapp).
  5. Parts of "about" menu suffer from the same problem.

These inconsistencies can be confusing for the user. If some of them are features that will not be changed, they should be at least documented with some notes or tips.

Note: I hope this does not get too pesimistic. It is not so bad and should not be too hard to fix, as it is more about deleting/disabling duplicate functionality than having to come up with something new. And it is usable :-)

I think this issue should probably be split to separate items, as each is a standalone issue, but with a common theme.

Implement POI editor in MVC site

The current POI editor is only supported in the web app/mobile app and as such it does not provide the full level of functionality in order to edit all properties as it is aimed mostly at ad-hoc contributors rather than experienced editors. The plan for the web based editor is a full editor which can also edit metadata values and provide additional usability extensions such as deduplication tools.

Route planning?

The ability to enter a start and end point of a route and see the charging stations most relevant is a feature most people expect to see. Several community and commercial efforts exist in this sphere and this is not a proposal to compete on sophistication, only basic functionality to avoid users having to hunt for a services which use current OCM data.

Should we implement anything in this space or leave it to other projects?

RFC: Enhanced Data Model For Equipment/Location Information

Proposal

As the world of EV charging has moved from pilot projects to growing international standards the need to grow and mature Open Charge Map has also developed. We're now at a point where we need to plan our next round of big changes to be able to accurately and efficiently capture, maintain and distribute the important details about the worlds EV charging infrastructure.

We've seen equipment and vehicles become more sophisticated and charging networks grow, merge or become obsolete. Charging stations have gone from being basic power delivery machines to multi-headed, networked, smart units often servicing multiple bays.

With that in mind, OCM needs to look at the information we currently capture and maintain and look forward to how we think it should be organised and managed in the future.

For a given location we currently (Mid-2015) store the following information:

* Address Details (Location Title, Address, Latitude & Longitude, Access Comments)
* A single associated Network Operator ID
* Number of Bays/Stations
* A single associated Data Provider (usually Open Charge Map but info may be imported from an external source)
* A Data Provider Reference (if imported)

Equipment Details:

This proposal and discussion broadly covers the need for a new (non-breaking change) design to capture equipment details in a way which more accurately reflects the real world and will allow for greater data accuracy.The aim of this is to then be able to show clearer information about available equipment at locations.

Suggested Changes

Network Operator - Standard Equipment

Versioned preset equipment configurations which users can select from a list after selecting the Country & network operator. This enables easier addition of locations where equipment is generally of the same specification. In addition the resulting UI could allow for further customisation on a per-location basis.

Related Operators

Establish relationships between network operators so that if an RFID card from one operator will work with another (and perhaps vice-versa) then that can be centrally documented and all associated charging stations will reflect that automatically.

Charging Stations vs ConnectionInfo

Currently a location may have one or more ConnectionInfo entries which details a connector type, power level etc. The proposal is to allow these to be grouped into a physical station (of which there may be several at the site), which in turn can service one or more parking bays.

A station may allow a single or multiple connections to be in use at any one time.

A station may have a distinct geographic location and access instructions at the common site (shared with other stations) .

Each station will be associated with a Network Operator (who controls access and may in turn do equipment maintenance or may outsource maintenance to one or more parties). How would we represent situations where the network operator is a corporation but the branding for the network is local (local government initiative etc.)?

The number of bays present at a given station needs to be clear, as does the number of available stations and their ability to share connections with multiple cars simultaneously
.
The OCM-ID of a location will point to one or more stations at a single common site (Point Of Interest [POI]), multiple network operators and equipment types may be present at the site.

The POI may be a composite of imported data which has since been edited.In this case multiple data providers are responsible and each provider and their associated license details needs to be identified.

OCM can currently hold external metadata about a site (this includes data attribution, POI types) - we would like to develop this more so that sites can be tagged with metadata such as the Hotel, Secure Access, Restaurant, Toilets etc.

As a related project, our current default API JSON output consists of monolithic objects for Data Provider, Country, Connection Type etc. Instead these should consists purely of reference ID's which related to our Core Reference Data (DataProviders, ConnectionTypes etc). This will greatly reduce the default API results payload size.

This proposal will be updated as we arrive at decisions.

Web: get town and country form visitor

Hi Christopher,

is is possible to use the google.loader.ClientLocation object on the webpage as well so we can use

  • ClientLocation.address.city — supplies the name of the city associated with the client's IP address
  • ClientLocation.address.country — supplies the name of the country associated with the client's IP address
  • ClientLocation.address.country_code — supplies the name of the ISO 3166-1 country code associated with the client's IP address

so each visitor get his town and country preseelcted?

pls find below the reference documentation at http://code.google.com/apis/ajax/documentation/

Country will not selected correctly

when you are on page http://openchargemap.org/site/POI

and you enter you city jump with [TAB] to country and you press only [G] until Germany appears without open drill down and you Press [Search] it will pick still use (None Selected).

!It's only during the first time!! After you have select once any entry via mouse it works also without mouse selection.

Confirmation email after change approval

Enhancement: The person who edits/adds a charging location under his account can automatically be sent a confirmation email once his edit is approved by someone with approval rights (probably with option to opt-out from getting these emails).
This would be a useful feature so that new editors are motivated by knowing right away that their edits were approved and that they made a difference.

API: Implement Level Of Detail setting for search results

Often a user may be browsing a zoomed out map, in which case they just need a summary view of the locations available, not every location. Marker clustering has the disadvantage that data for every point must still be returned. Implementing an alternative Level of Detail setting would return a sample of data available in the given search region, ranging from full detail to sparse detail. Typically zooming into the map will then require more specific level of detail until the user is at the level where roads can be distinguished.

Translation: reference data should be translated in UI

Currently we can translate dropdown values etc but we dont then use the translation when the information is displayed in pages such as POI details page etc.

Need way to translate model value in web view and also need to look at app detail view.

Import: remove edited items missing from data providers data

If a POI is edited after we import it the original POI gets archived as Superseded and the new POI is created with OCM as the data provider.If the POI is then removed from the data providers data set subsequent updates will not removed this POI because it has been edited.

We should identify if a superceded POI has a child POI and delist it if there are no comments/media items associated.

Drop down lists in settings/preferences/filter in webapp

Selecting some individual items from the drop down lists in Settings in webapp will not uncheck the default "(All)" option (in mobile app as well as webapp integrated in website for mobile devices).

Then when the dropdown list folds (after clicking somewhere else) the list says "n" items selected instead of all items (only in website for mobile devices).

Observed on Android with Google Chrome browser.

API: default results JSON should be minimised to not include reference data

Our current default JSON results include full details of DataProvider, ConnectionType etc per result. These should insteaad be a reference ID which relates back to the relevant Core Reference Data types. That way an app can fetch the Core Reference Data once, then refer to that when parsing a POI result. This will result in a greatly reduced JSON payload and faster API query times.

Any distance option in POI filtering does not work

The issue can be replicated in a WebApp by changing the Distance filter to "Any Distance" and Network/Operator filter to "ČEZ" (with other filters set to default values). Searching the POIs with the arrow centered in the middle of Czech Republic returns only about 26 locations (depending on the exact position of search arrow on the map) out of 44 that actually exist in database (on 25th of August 2015).

Note that the total number of stations that should exist can be shown by changing the Distance filter in WebApp to maximum value or by getting to the following page (by clicking "View ČEZ Charging Locations in Czech Republic" from "http://openchargemap.org/site/country/czechrepublic/networks" page): http://openchargemap.org/site/poi?CountryIds=64&OperatorIds=115

API: Implement API for (near)real-time status polling (if available)

Some data providers make near-realtime status information available. We need to provide a single API which consolidates status info from a range of networks. Apps should be able to query per POI or based on a lat/long and optional network provider etc.

Realtime status is a long standing issue which has been asked for since OCM started. Progress would ideally start with a small number of data providers and a design for a common querying approach and common result set (normalising the way the various data providers present this data). Data licensing issues also apply.

Implement Edit Queue item UI and processing

When users who are not editors submit edits or new data their edits are stored in the Edit Queue. Currently there is UI to review the edit queue but no UI to approve the edits.

API: implement compact results for JSON output

By default the API currently returns full reference data objects (Data Provider, Country, Connection Type etc) per POI. There needs to be an option to output a smaller data set consisting of only reference ID's which the calling app can then rehydrate into corresponding objects as required. Furthermore this should be the default output in the next version of the API.

Charging station search behaves inconsistently and incorrectly

The charging station searching using the webapp embedded in website behaves strangely:
When setting the Filter to broadest values possible (using All where possible and any distance - see picture 1 below) while having the Zilina (in Slovakia) in the search bar and pressing the search icon (one with the magnifying glass) I only get 6 locations as a result - picture 2. This is clearly wrong, since there are thousand of stations in any distance from Zilina.

If I keep the same Filter Settings and instead of search icon tap on the arrow in the centre of the map, I get 10 locations that match the criteria. If I use Max distance = "Up to 20000" I get only 100 locations. I noticed this is a maximum limit in any case, but the text should say "xxxxx locations match your search. Showing 100 closest." or something similar, because then it may seem there are not very many charging stations in the database.

Picture 1a:
image

Picture 1b:
image

Picture 2:
image

Update the way of restoring NuGet packages

When attempting to build and run the Website according to the newly created DeveloperGuide.docx yesterday, the visual studio was giving several warnings that the NuGet packages are missing and errors that the NuGet is outdated and I should install a new version.

This was weird, because the latest version of Microsoft Visual Studio Express 2013 for Web (Update 3) that I installed already contains the latest NuGet extension.

After some investigation I found out that the "MSBuild-integrated package restore approach" that OCM is using right now is outdated and it is causing these problems. The solution should be migrating the solution to use "Automatic Package Restore".

Background to the approaches for packet restore can be found here:
http://docs.nuget.org/docs/reference/package-restore

The reasons why and how to move are described in these resources:
a) http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
b) http://www.xavierdecoster.com/migrate-away-from-msbuild-based-nuget-package-restore
c) http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

I have found also a resource which says that letting the NuGet automatically update packages is somehow bad practice:
http://blog.ploeh.dk/2014/01/29/nuget-package-restore-considered-harmful/
And the suggestions how to do it better:
http://blog.ploeh.dk/2014/02/03/using-nuget-with-autonomous-repositories/

I have tried the steps described in a) and it worked (I was able to build the website without warnings or errors, however I am still not able to get the website running in the browser...). I will try to create a Pull Request with my changes shortly.

Peter

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.