From the beginning, our hackathon group was a diverse group of people who had never met before and had completely different skillsets, from Java to Webdev to iOS. We came to the hack as individuals, and we ended up leaving as a team. Our inspiration for HackTeams was to build a social hackathon app that let users meet with other hackers that had complimentary skillsets that would level the playing ground between established, developed groups and those without. Our ultimate goal was to improve the hackathon experience for individual hackers.

What it does

TeamHacks allows registered TeamHacks hackers to declare interest in hackathons, and then, in server-side time intervals, teams can be generated using an algorithm based off of a machine learning model that optimizes success for different combinations of user skillsets, taking the best combination out of all the users not already in teams. Teams would then be able to chat with each other in preparation for an event. Additionally, users can follow friends, which would then notify the user when that friend was going to a hackathon.

How we built it

TeamHacks was built with a variety of libraries -- most notably, TeamHacks relies on Amazon Web Services. The app's data is stored in an AWS RDS MySQL database, which is written into and read out of with Node.js and JSON. The database is normalized to third normal form, with tables created to solve N:N relationships. Amazon IAM settings grant permissions to users, helping to secure the dates. An AWS Machine Learning model utilizes real-time endpoints to send data to the team generation algorithm, and was itself based off of a .csv model stored in the Amazon S3 storage, generated with C++.

Github served as version control and was used to have different people working on the same code. The front-end of the website is powered by Angular, and the back-end of the website is powered by Express, Node, and jQuery. Cheerio was used to scrape hackathon data off of the MLH website and add to the Amazon RDS.

Challenges we ran into

Initially, the first challenge we ran into as a team was what type of project to embark on, given our different skillsets, which was a large hurdle at first, and eventually, after much deliberation, we decided to create TeamHacks, which would solve this problem for future hackers so that they would be able to hit the ground running as soon as they came.

Another major challenge that we ran into as a team was how to integrate all of the different libraries we used; in particular, we needed a way for the database to communicate with the JavaScript on the website -- a solution that turned out to be Angular. Having all never having used AWS before, we also needed to figure out its API and efficient means to communicate with the database and the machine learning model, which we ended up solving with Node.

Accomplishments that we're proud of

Our accomplishments are largely based off of the challenges we overcame as a team. We are proud of how we used AWS to power our hack and how we were able to integrate its different features in order to create a tool that would be useful to future hackers. There is nothing more satisfying than coming upon a solution after hours of toil, and some of our key checkpoints were figuring out how to read data off of the RDS database onto JavaScript, how to scrape data off of the MLH website, how to generate an effective machine learning model and how to generate teams using it, and how to get data from the database onto the website.

What we learned

The biggest things we learned from Def Hacks() NY were how to use AWS and how to integrate the various libraries. Figuring out how to get the asynchronous Node.js was also very important to us and we learned a lot along the way. Organization of the database and optimization of the machine learning model were particularly useful skills that we will find valuable in the future, and we will use both in future hackathons and our day-to-day projects. Importantly, we learned how to cooperate as a team with people who we had never met before and manage to pull out a complete project in 24 hours.

What's next for TeamHacks

We plan to increase TeamHacks' social media functions soon, which were downplayed in the face of the functionality of the database and the machine learning algorithm. Of course, as with all machine learning algorithms, we want to improve accuracy and optimization, and we want to increase and diversify our use of scraping with Cheerio in order to increase the resources we have available on our website. With some additional refinements, we see TeamHacks as being a solid application that many hackers will find useful.

Share this project: