I wanted to work on something that could (potentially) solve a real local issue.

What it does

Incrementally counts people that have parked in parking lots at UB. The page displays how many spots are left for users when they access the site.

How I built it

I used a Python Bottle server, HTML + JavaScript front end, AJAX requests to have those elements communicate, and a local SQLite database for storage. I also implemented a couple of security checks like html.escape() for HTML input, and parameterization for SQLite variables.

Challenges I ran into

As I started the project, I wanted to branch out and learn a new webserver method. I started trying to use Microsoft Azure with a Django app, and I also tried Flask, but I couldn't figure out those technologies so I reverted back to something I was familiar with and attempted work from there.

Accomplishments that I'm proud of

After spending 8-9 hours reading documentation and not understanding what was going on, I'm proud that I didn't just get discouraged and give up. I'm a sophomore currently and at last year's hackathon my group and I sort of gave up by midnight and I felt so guilty about it. But now, it's 4 am and even though this is such a barebones project, I'm proud to say that I'm submitting something this year. My next goal is to submit something even further along in development for next year!

What I learned

I learned the basic concepts of full-stack engineering. This project involved everything from the front-end website to the server to the backend database and required an understanding of how those parts connected through certain processes. Although this is something I've done before, I feel like I've understood it at a much deeper level as I sat down and re-reviewed all of the components and built them from the ground up. I've also learned that doing a project by yourself is not nearly as cool as finding a team and all working together to complete a goal. Originally, I joined a team with three other people but they wanted to go a different direction so I split off from them. That wasn't really the plan but it is what it is and I've definitely learned how tough it is to do development without support.

What's next for UBParking

There was a lot that I didn't get to accomplish with this project:

Potential improvements: Much better user-interface. This is just bare HTML. Better security and usability (i.e., at the moment, users can park their cars, close out of the app, and never mark the car as unparked). Use a better database than SQLite. Live refresh on the page when things change. Hosting on a web site. Deploy in a mobile app. Have use of Siri or HandsFreeLink in some fashion so while driving, users can ask "where's the closest parking lot to my location" and be given directions. Or potentially even include sensors at the entrances of parking lots to track the number of cars that go in and out since some users will probably use the app to find empty spots but then not mark they have parked. Dropdown menu for users to select parking lots rather than type them. etc.

Edge cases that need implementation: Hitting 0 spots Having spots go upwards above the limit due to security and design flaws etc.

I definitely think there is some major room for improvement and I hope to continue working on this project in my spare time once the hackathon is over!

Thank you for taking the time to judge my project!

Share this project: