Inspiration

We wanted to take on a challenge that we are not familiar with and one that will really allow us to learn from in the process. This project did all of that for us. From plotting Windsor's coordinates points which had millions in data and trying to figure out the best algorithm to optimize the charging stations to display. As well as connecting the backend with the frontend of our projects. This project was very fun to work on and was challenging and we are happy to finally have something to show for our hard work.

What it does

Basic functionality -Users can input the number of stations -Program outputs most optimal GPS locations for each charger in the areas required -Chargers are not placed on highways

Additional functionality -Chargers are placed in key strategic locations thanks to machine learning -Using clusters and centroids -Street location of the coordinates displayed -Does not place chargers in a residential area -Takes population density into account -Chargers are not placed on small roads or roads with high traffic -Medium traffic -Shows chargers on the map

How we built it

  • First, we pull up the shapefile that represents the city of Windsor, Ontario, Canada.
  • Then, we filter the datapoints and remove the points that are on highways / residential areas.
  • After that, we perform K-means cluster algorithm on the dataset where K is the input given by the user
  • The clustering algorithm returns points that are optimal given the population density and distance between the points in the dataset
  • We check if the returned points are valid points. If they are not valid, we run another algorithm that returns the closest valid point.
  • Then, we use the Google Map API to draw these points on a map.

Challenges we ran into

We ran through a lot of difficulties and challenges while building this web app most of which we were able to overcome with help from each other and the internet:

The first challenge we ran into was downloading all the longitude and latitude points of the Windsor area. This process took very long as there were over a million data points. Choosing the right and best technology to plot this data was also very difficult and after research and trial and error we found that the Jupyter notebook was the best.

After polishing our back end and algorithm it was challenging for us to link the front end and back end aspects of our project since we were using python to build the backend.

Accomplishments that we're proud of

We are proud of being able to:

  1. Build a working back-end
  2. Build a working front-end

What we learned

We learned about how to work with the Google Map API and the openstreetmap API. On the side, we also learn about full-stack development.

What's next for OPCHARGE

We would like improve OPCHARGE by allowing users to:

  1. Specify the locations of existing chargers and take this data into account.
  2. Collect the locations of existing chargers from some third party source and take this data into account.
Share this project:

Updates