Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wasabigeek/cahoots
An attempt to clone Kahoot! in React + Firebase
https://github.com/wasabigeek/cahoots
Last synced: 2 months ago
JSON representation
An attempt to clone Kahoot! in React + Firebase
- Host: GitHub
- URL: https://github.com/wasabigeek/cahoots
- Owner: wasabigeek
- Created: 2020-03-11T14:51:11.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-23T02:10:39.000Z (9 months ago)
- Last Synced: 2024-10-09T23:11:17.556Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 3.55 MB
- Stars: 4
- Watchers: 1
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
An experiment at making a free-to-play quiz game.
![Cahoots Screenshot](cahoots_screenshot.png?raw=true "Cahoots Screenshot")# How to Play
- Go to https://wasabigeek.github.io/cahoots/
- Signup for an account and create a Game
- Start the game, and share the join URL with friends# Developing
- setup a firebase project:
- firestore
- authentication (email / password)
- copy `.env.example` and add your firebase project config
- `npm start`# Deploying
- deploy the firestore rules `firebase deploy --only firestore:rules --project `
- `npm run deploy`# Dev Thoughts
There were a few things I was experimenting with:
- Firebase (also my first foray into a NoSQL database)
- Trying to follow Uncle Bob's Clean Architecture, with a "use cases" folder, and also attempting to hide the Firebase implementation behind an interfaceI think the end result is still kinda messy, but it was interesting trying Clean Architecture out. I think use cases can fit pretty nicely with React's functional leanings, but it did feel like a lot of boilerplate.
I also tried to do an "entities" folder (might be using the wrong name for that) to represent the domain models more, but it seemed unnecessary given that everything's an object, and it didn't feel very React to store an OO instance (with methods) in state.