We liked the idea for Cards Against Humanity, but wanted a game where players could react to and caption randomly picked images and the judge would pick the funniest or most clever caption. The game could be played in one setting with all the players together, or over a longer period of time,

What it does

Players set up a game with a pre-picked image category. The game then goes through multiple rounds; in each one, one player is a judge (the position rotates through the players), and the rest of the players submit a caption to a randomly selected image from the selected category. After all captions are submitted, the judge picks their favourite, and the player with that caption gets a point, and the game moves on to the next round. After a certain amount of time, or when one player gets a certain amount of points, the game is over.

How we built it

We built the website with a bootstrap template and our own custom CSS and JavaScript. We used the Python Flask framework as the backend server to store data about the game, which communicates with our HTML and JavaScript in order to load content onto the webpage when a round loads. We also used Microsoft's Bing Search API in order to search for images and load them for each round.

Challenges we ran into

Trying to find enough team members to work on each part of the project. Jack and Emerson worked mostly separately on each part of the project, and there were some logistical issues and issues in communication when trying to merge each of these parts at the end.

Accomplishments that we're proud of

Developing a nice looking user interface with minimal reliance on pre-written CSS and JavaScript libraries, being able to coordinate use of several separate systems in order to get a mostly functional final project.

What we learned

We learned much more about making interactive webpages, such as using an external API (Bing Search API) to load content onto the page, and using JavaScript separate from another backend (Python Flask framework) to handle different parts of the app.

What's next for Recaptions

Currently the game is missing the judging feature, which could be added by keeping track of a rotating judge, and excluding that player from the caption submissions on the round that they are the judge. Also, the game currently functions by manipulating a single webpage, which if used in one setting would function similar to a desktop or mobile app. If players use the app from separate locations, they would need to all modify the same webpage rather than each player submit their own part for the game. As an extension, Recaptions would have each user connected to the server, and each user would only need to submit their own part for the game (i.e. the judge would only see the judging screen, each player would only see their caption input box), possibly with a login system. This would allow the game to be more usable when not all users were playing at the same time.

Share this project: