Do you ever wish you could know how full a lot is on campus, but have no faith in your university to invest in the tech to make that feasible? Enter DragonPark! No more driving around campus looking for a spot, just pull out your phone and know where to go (and share the love by helping others avert parking induced breakdowns!)
What it does
See a list of local parking lots and recent reports of how full they are. Users can submit reports on how busy parking lots are for others to see in real time!
How we built it
The service is a web app communicating with a remote web api. The frontend was built using Angular.js, running off a Node.js server during testing, and then being converted to static HTML, CSS, and JS files to be served and run client side.
The backend server was written using the Phoenix framework in Elixir. The backend was responsible for receiving requests from the client, communicating with the database, and computing a rolling average of parking status.
The website and the backend are served and running from an AWS instance, with Nginx used to forward requests correctly.
Challenges we ran into
Rofael (the backend author) and Caleb (the frontend author) only had some experience with Elixir and Angular, respectively. We had a fair share of issues getting used to the frameworks, but were able to triumph over them.
What we learned
A lot. These were tools and frameworks that we both didn't have much experience with. Thanks to relying on each other and the great documentation and communities around the products, we were able to make something pretty cool.
What's next for DragonPark
The back-end and front-ends can easily support real time updates via a WebSocket connection - we just didn't have time to implement it. That'd be next. Maps integration (show a map from the user to the parking lot) and filtering (by which lots the user has access to) were among the ideas considered but were not implemented due to time constraints.