-
-
The impostors view.
-
aaron was kicked out and the game was won
-
Once 20 messages are sent in the chat room, the voting takes place to kick out the suspected impostor
-
Initial game page before the specified number of clients have joined
-
Once the correct amount of clients have joined, everyone except the impostor is shown an athlete, now players have to describe the person.
-
Whilst describing the athlete, aaron/impostor mistakes the athlete as a football player.
Inspiration
Our group members had all seen a trend on Instagram reels where there's a group of people and each person except one knows the key topic or person. The players take turns at saying words associated with the given topic and the person who doesn't know the key topic tries to follow along and by saying words they think is associated with the topic. We wanted to create a web application for this because we believed it was a great way to bring people together as we saw how enjoyable this was for people in real life.
What it does
It connects a group of people and puts them into a single room. Everyone in the group is shown a picture of the key person/topic except one person who is the impostor. The members of the group can use the chat box to enter words/phrases associated with the key topic and the impostor should try their best to blend in. After we detect a certain number of messages have been exchanged, we ask for people to vote on who they think is the impostor. After the vote is finished, we reveal if the team got the answer right or not.
How we built it
We started with communication on socket connections on localhost through the command line, then we added a flask backend with routes and templates. After connecting the frontend HTML, CSS, & JS and backend, we started using docker so that we have the same environment to avoid bugs. Afterwards, we implemented our own communication protocol for the server to communicate with the client and vice-versa, e.g. when a game starts. We decided to run the python server.py file on the cloud with the port 9999 open in the firewall for availability.
Challenges we ran into
Dependency management, it did not run on one of our teammates laptop, which was solved using docker. Networking using sockets was getting complicated fast. Multi-threading with networking was also complicated.
Accomplishments that we're proud of
Creating a multi-threaded full-stack networking application through which can be run on any environment through Docker. Teamwork makes the dream work, do to the outside commitments of other members, 2 of us stayed at uni overnight, running on an hour of sleep, and successfully developed a Minimum Viable Product.
What we learned
We learned how to use Docker, Flask library, Threading library, Sockets library, and cloud hosting. We also learned that we can do a lot in 24 hours if we lock in.
What's next for Exposé
We need to iron out some bug and further improve the UI. We also plan to refactor the code to make it more organised and secure.
Log in or sign up for Devpost to join the conversation.