Skip to content

🎮 A frictionless multiplayer web app that lets you play Set with friends

License

Notifications You must be signed in to change notification settings

aolsen0/setwithfriends

 
 

Repository files navigation

Set with Friends

Logo

This is the source code for Set with Friends, an online, multiplayer implementation of the real-time card game Set. Your goal is to find triplets of cards that follow a certain pattern as quickly as possible.

Technical Details

This app was built on a serverless stack primarily using the Firebase Realtime Database, along with Firebase Cloud Functions for more complex or sensitive operations. The frontend was built with React, with components from Material UI.

Code for the frontend is written in JavaScript and located in the src/ folder, while serverless functions are written in TypeScript and located in the functions/ folder.

The production site is built and hosted on Netlify from the master branch. The latest development version of the code is in the develop branch.

Contributing

This game is in active development, and we welcome contributions from developers of all backgrounds. I would recommend talking to us on Discord (link above) or submitting an issue if you want to see a new feature added. If you would like to help by contributing code, that's great – we would be happy to set up a time to chat!

To build the site for development:

  • Install Node.js and npm
  • Run npm install in the root folder
  • Run npm start - it should now open the site in your browser

Please make all pull requests with new features or bugfixes to the develop branch. We are formatting code using Prettier, so you should run npm run format on your code before making a pull request.

Deployment

As mentioned above, the latest changes to the master branch are deployed automatically to Netlify using the npm run build script. If you try to run this locally, it will not work due to protections on the production database. Instead, you can preview a release build with development configuration using the npm run build:dev script.

The other parts of the app (serverless functions, database rules) are deployed to production using GitHub Actions on the master branch. They must be manually deployed to the development environment using the Firebase CLI.

License

Built by Eric Zhang and Cynthia Du.

All source code is available under the MIT License. We are not affiliated with Set Enterprises, Inc., or the SET® card game.

About

🎮 A frictionless multiplayer web app that lets you play Set with friends

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 91.3%
  • TypeScript 7.1%
  • HTML 1.5%
  • CSS 0.1%