Over 90,000 individuals across North America & Europe participate in about 215 MLH-sponsored hackathons, and that’s a LOT! Creating a team and finding inspiration for ideas in a hackathon can be a huge hassle. Nowadays, with hackathons being remote, this intensifies the difficulty of forming a team and even if one does create a team, coming with ideas is challenging itself. This is where Hack-a-Team comes in.

What it does

Hack-a-Team is a web app that allows participants in hackathons and case competitions to form a team with individuals from all across the world and takes ideas from the idea creation platform of the application. It eases the ability for creating a team and finding new, innovative ideas to solve and possibly revolutionize the world!

How I built it

The backend is built on express.js, and uses MonoDB for storing data. The backend manages user authentication through 3 API endpoints "/login", "/logout", and "/register". The other API endpoints return JSON data corresponding to results for the user's request. GET requests are used to fetch data, and we can read query filters in the URL string. For updating data, POST requests are used.

All attachments and profile images are uploaded to a google cloud storage bucket via the official Node.JS API client, and a public URL is provided to the client, so it can be displayed.

Challenges I ran into

Like many aspects of JavaScript, mongodb's API and express.js are asynchronous, event/promise based systems. Mixing synchronous and asynchronous code and ensuring order of execution was preserved turned out to be quite challenging. This is especially true when it lead to some rather difficult to find bugs causing incorrect data entries to be generated.

Accomplishments that I'm proud of

We created way to make coming up with hackathon ideas easier. This project proved to be a good idea which came directly out of not having any good ideas.

What I learned

I learned about many aspects of MongoDB queries and creating user authentication systems.

What's next for Hack-a-Team

  • Security layer in sign-in (SSL)
  • Monitoring conversations to ensure safe messaging
  • Expanding to more types of competitions
Share this project: