⚠️ Our backend is no longer being hosted as WinHacks has concluded.

Thank you for viewing WindsorCharging. Feel free to explore our demo video and GitHub repos.

⏩ Summary

We had some free time this weekend, checked Devpost, and noticed WinHacks. Our first ever hackathon was WinHacks 2021, exactly a year ago. Building upon lessons learned from last year, we used our experience with APIs and geocoding to create a web app for the Optimizing Vehicle Charging Stations challenge.

⚙️ Usage

Our project is a web app, usable in the browser with no installation and zero hassle. Our UI is designed for visualization and simplicity; we expect that non-technical individuals involved with the planning of EV charging station locations would benefit from this. The user simply chooses the options from the panel and is able to view the locations of both existing and recommended charging stations on an interactive map of the region.

🤖 Algorithm

Our backend handles the calculation of where new charging stations should be built. The algorithm takes into account the locations of existing charging stations (via the NREL alternative fuel stations API) and then considers placing new stations in the gaps between them; if it turns out a given location already has multiple stations, the program will not recommend a new one to be built there. When searching NREL and working with the results, the algorithm makes sure to exclude points from outside the region, such as charging stations in nearby Detroit. The program also considers the specific locations mentioned in the challenge details and attempts to recommend stations at those locations if not already present. Once all of these recommended locations are gathered, the algorithm uses TomTom's geocoding capabilities to locate the nearest address to each of the locations, thus yielding a road and specific (human-friendly) location details. Ontario highways are automatically excluded via an internal filter.

🛠️ How we built it

The frontend (web app) is built on Vue.js and hosted on GitHub Pages. The backend runs on Python with an API server built on FastAPI.

🌧️ Challenges we ran into

  • It was a struggle to create an algorithm that could determine reasonable locations for new charging stations without creating too many or too few.
  • Our hosting platform was having issues with installing dependencies.

🏆 Accomplishments that we're proud of

  • Having a nice UI

👨‍🎓 What we learned

  • Working with geographic data (and GeoJSON)

📅 What's next for WindsorCharging

Maybe our team will be back next year for WinHacks 2023! In the meantime, we will continue to participate in other hackathons once in a while.

Share this project:

Updates

posted an update

Here are some more specific usage instructions, as the page above was a little vague:

To see the recommended charging locations on the map, select the "Show Generated" text box in the left control panel. You can increase the amount of locations shown with the text input box below it (you can expect 30-40 at most). If the amount is low, you will only see the recommended locations that are furthest from an existing charging point.

Log in or sign up for Devpost to join the conversation.