The OpenPC operational diagram
Have you ever needed a school computer, but could only find ones that you aren't comfortable using or that don't have the tools you needed? We have, and this project aims to solve that problem once and for all.
What it does
OpenPC can keep tabs on PCs across campus, giving you up-to-date information on the availability of computers with the hardware and software you need. If none are available, it can even notify you via email or text message when one is freed up.
How we built it
This project was built first and foremost around the OpenPC server, a .NET Core application specializing in tracking and organizing hundreds of computers in many different locations. We also built the OpenPC Database Manager with Windows Forms to promote ease of interaction, along with quick perusal of the OpenPC server's contents. Next up is the OpenPC Web Interface. Built with PHP, it runs on an Amazon AWS instance and drives our entire user experience. Finally, the OpenPC Async Notifier is a python script used by the OpenPC Web Interface to manage computer availability notifications. It leverages Amazon's SNS service to seamlessly offer email and text messaging notifications, all from a single input.
Challenges we ran into
Projects with such short timeframes come with their share of challenges, primarily sleep deprivation and lack of time to optimize. We were one person short on top of this. Despite these challenges and setbacks, we finished the project just in time for some much needed rest.
Accomplishments that we're proud of
We were able to successfully achieve a vast majority of the goals we set out to accomplish. From fluid webpage design to blazing fast notifications, this feels like a piece of software from 2017.
What we learned
Our primary lesson from this hackathon was the importance of rest to producing quality code. Such a short timespan nearly demands sleepless nights, but getting even a bit of shuteye helped each team member be more productive, cooperative, and maybe even a bit happier too.
What's next for OpenPC
The logical next step for the OpenPC project is a cross platform client to identify computers and keep their information as accurate as possible. The ability to view the computers in each building independently through the web interface is another potential place for expansion. Finally, given enough opportunity to prove its worth, the next step could be scaling this technology up to support all of UTK, or even beyond to other campuses.
NOTE If the link below does not work, that is likely due to UTK's DNS cache. See the other link only if necessary.