Drivers often choose the nearest parking with the place they need. But there can be a problem. Imagine that there is no free places. You should riding away from this parking to find another one. First of all, you waste your time, moreover you create a traffic and waste not only your time. In addition, car's exhaust gases harm to environment
What it does
This is a mobile app which helps you to find a parking slot. It has a map where you can select a destination. Smart algorithm finds parkings around a destination, calculates how far they are from the goal, predicts their occupancy, look at the weather conditions and chooses the best one. It also takes into account how much time you need to get to the destination from your location. So, before the start of your journey you already know which parking do you need. The app is also show you an estimate arrival time and predicted occupancy.
How we built it
We create a mobile app on Cotlin with map interface via Google API. We trained our ML model on Python, using different approaches. We tried ARIMA, RF, CatBoost and some others, and CatBoost looks like the best one. We add several features to initial dataset and do some work to avoid overfitting including stratified split. Our backend was written on Django and using TomTom API, Google API, tecdottir.herokuapp.com to get some data from external sources, and we use some custom logic to sort nearby parkings. And finally, our server is running on VM in Google Cloud
Challenges we ran into
First of all, big deal was to find a team. Because it is very important to combine skills correctly. Also, we have never created a mobile apps and it was difficult and interesting simultaneously to try ourselves. One of the biggest barrier was an imperfection of data. We want to solve driver's problems, so we should be attentive to edge cases. Additional features mining is a very tough task. You need to suggest which data is important, find any kind of source of required data, integrate it with already existing learning examples and control that those features will not lead you to overfitting.
Accomplishments that we are proud of
Despite all the problems at the end we could create a working ML, a working backend, a working app.
What we learned
I learned a lot about team communication and many technical questions were closed. We wasn’t familiar with backend and devops stuff, so we had to learn them almost from scratch.
What's next for Smart parking
We want to continue working on that problem and to cover more unobvious cases in future. For example, if you want to plan some travelling on the next week, you might want to know if there will be some free parkings in the city center. On the ML side the solution is already done, we just need to support it in the UI. Also we would like to work with nasty situations, when our user finds a suggested parking full. In the app we can create a button to report this situation and recommend another parking.