And all I got was this pint glass and a (pretty cool) T-shirt.
This past Saturday, I participated in the Texas Advanced Computing Center Student Hackathon. This was my second Hackathon ever, my first one being the Toronto NASA Space Apps competition in 2013 (where my team Waystation won best software!) and my first where I was doing back-end development.
Our client was a high school administrator responsible for a program that matches college student mentors with classes and teachers in the local area. The existing system involved a lot of Google Docs, copy-and-pasting, and tedious labour. Our objective for the Hackathon was to create a website where mentors can apply to volunteer in the program, and teachers could post positions that need mentors. The process by which mentors are matched with teachers was up to us.
We decided to run with a system where mentors and teachers fill out a simple form (specialty, availability, how far they are willing to travel/what school they are located at) and then a matching algorithm would detect when mentors and teachers are compatible. The administrator would be notified when there is a match, they would review its suitability, and then put the teacher and student in contact with each other. The website also included an administrator-only page that contained statistics and visualizations summarizing the important features in the input data.
We were commended for our back-end and the progress we made with the database systems. Unfortunately, we never had time to connect the front and back-ends together. Our front-end was pretty slick and it’s a shame we never completed the puzzle! In the end we lost because while we thought the administrator wanted to be part of the system, the winning team emphasized the role of the mentors/teachers with a system involving log-ins and personal profiles. It came as a surprise to our team that the client wanted log-in functionality as well as the ability to add more features later. The biggest lesson for me here is that you need to have a solid understanding of what the client is asking for! Everyone on our team jumped right into coding and got too caught up in linking all these little bits of code together. I think if we had taken the time to communicate with the client one-on-one and had a better high-level plan for our website, we could have easily taken first!