Inspiration
During events, we usually take some of our time to go through all the parking floors to find a parking spot. Not knowing where is the available spot, waste a lot of time specially for big city and important events.
We wanted to solve parking traffic that is caused by people circling in parking, to find a spot.
What it does
Our platform brings real time data about parking spots for a event/parking so people can find empty spot's easier. Reducing the time spent looking for spots, and reducing the amount of fuel consumption, we provide solution to parking management problems. Our platform helps both parking managers and drivers.
How we built it
Solace is the backbone of our platform. Using their event driven architecture, we can send information to multiple subscribers, in real time. We use their javascript (node.js) sdk for our client side communication and their python sdk for broker and handling events in backend. Messages sent to subscribers are guaranteed messages and they get queued, to make sure all of our available subscribers, get all the events.
Our Arduino, is using sonar distance detector which can detect if there is a vehicle parked in a parking spot. It also can connect to wifi and communicate with our broker.
We use nextjs for fullstack web app. We use typescript for our web app platform.
Our broker is a flask python app and it can handle APIs.
Challenges we ran into
The first challenge was that we implemented the pub sub wrong, and then we learned how direct messages work and we fix it. Then again we found out that we haven't implemented the correct solution, so we went and ask question from mentors, and they told us about queues and we had to change everything to implement them. After that we saw our app is not being able to send information to multiple users, so we had to search on how to create temp queues and keep all of the users in sync with the data available. Also acknowledging messages to remove them from queue, was one of the thing that we didn't know and made us do a lot of research to fix.
Also we never used a sonar ultra sonic sensor before, and none of us is good at electrical part so it was very challenging for us.
We have 3-4 different apps (such as Arduino, broker, frontend, backend) that are sending messages together, and making sure all of them are secure, and with the correct architecture was a challenging technical task.
Also using Solace sdk, because it was the first time we were using it, and we never had experience with pub sub and event driven apps before. Understanding how it works and how we should plan our platform and which of their sdk we should use was also a challenging task for us.
Publishing app and using .tech domain as well!
Accomplishments that we're proud of
Seeing that our Arduino signals reflects on multiple users browser in real time was a very proud moment. We planned all of the project and we could achieve the MVP we had in mind. We didn't know about any of pub sub architecture, but we could learn and use it with both python and javascript. Also, we went for more advanced sdk and being able to implement the ideal architecture and making it work, which although took a lot of time, but was a very rewarding achievement.
What we learned
Using what are pub sub are and how they work and how to implement them was the most interesting skills we learn during this hackathon. We went through nearly all of solace document and tried to understand what is best for our app. Also a thank you for mentors for guiding us for the platform architecture.
Arduino and electrical part, because all of us are software engineers, and we had to go and learn basic and useful topics on how to do the board.
What's next for Flow Park
Using Flow Park for some small parkings help us to see if our app can be useful for drivers and parking managers.
We need to use parking spots data to come up with solutions on how to fix the traffic in large parking during big events.
Log in or sign up for Devpost to join the conversation.