Inspiration

Our inspiration was the need to feel connected during quarantine and to have a place where we can hangout with our friends and easily find common interests. Our goal is to improve the social connectivity of students in an online environment.

What it does

Games Night helps connect you with your friends by suggesting online games that you all have in common and are able to play together. This is accomplished by allowing students to send friends requests, create lobbies, and join lobbies. While in a lobby, students can:

  • Chat in a text channel private to their lobby
  • See all users in the lobby
  • See a list of common games throughout the group that are applicable for the number of players in the lobby. The list of games shared will also take into account personal preference for how users like to play the game (in terms of number of players) when students which games to suggest
  • Allow students to vote on games they feel most excited about playing that night
  • Ask a helper bot in the chat to suggest a game for the group to play
  • Join the built in voice and video chat that is included in every lobby
  • Filter the shared games list by game platform providers
  • Launch Steam games directly

Students also have a profile that they can view when they are not in a lobby. When a student views their profile, they have access to another variety of functions:

  • Connect their account to the steam api to view their games list and activity
  • View your friends list
  • Send friend requests to other students on the platform
  • Accept, deny, or revoke friend requests
  • View all the of your Steam games
  • Launch Steam games directly

How we built it

We built this app using a nodejs server with a react frontend. Communication between the two was done real-time using socketio to allow for dynamic pages and notifications to be pushed to the user easily. We also integrated twilio to allow for voice and video integration when in a lobby. We used sqlite as a database system to allow for easy transference of database schemas between developer machines while still allowing for easy porting to any cloud computing platform.

Challenges we ran into

A challenge we ran into during development was the aptly named “callback hell” typical to typescript projects that have asynchronous code. Usually a good solution to these problems would be to use promises with async/await to make the logic flow appear like synchronous code. However, the API we used to query our SQLite database did not support promises, which led to certain functions seeding many callbacks to work properly.

Accomplishments that we're proud of

We are most proud that we were able to create a web app that we truly believe can help students connect during online school. We also proud that we were able to implement all the features we deemed as “must have” without any major bugs. Some of the features we are most proud of are our integration with steam, our live video chat, and our smart game suggestions through the chat bot.

What we learned

We learned how to add video calling to a React web application, as this was something that none of us had experience with before. Since we had more time compared to other hackathons, we also diversified our roles, so each member got more experience with both the front-end and back-end.

What's next for Games Night

We’d like to add support for sending calendar invites using SendGrid in order to schedule future game nights, and showing a calendar within the application. Furthermore, we want to expand our games list by integrating with other platforms such as Epic Games, Blizzard, and Riot.

Share this project:

Updates