Playhouse
A platform for real-time multiplayer trivia games
๐ฎ
๐ Directory Layout
โโโ /docs # App documentation
โโโ /web # Web ReactJS client
| โโโ /src
โ โโโ /pages # Next.js renderable pages
โ โโโ /components # Shared React components
โ โโโ /features # App features and routes
โ โโโ /styles # Theme and global styling
โ โโโ /util # Utility modules
โโโ /voice # Voice server
โโโ /server # Phoenix server
โโโ /lib
โโโ /database # Database models
โโโ /game # Game server
โโโ /web # Channels and graphql routes
๐ฅ Tech Stack
- Client:
- The web client is a
Next.js/React
application - The
Game
itself uses websockets but the rest of the pages useApollo
withGraphql
- The web client is a
- Server:
Elixir/Phoenix
API serverNode.js
voice chat server
- Data Transport:
- RabbitMQ for message passing
- Database:
- Postgres
โ๏ธ Setting up
Before we start, make sure you these prerequisites installed:
Once installed, copy and paste the .env.example
to .env
and update your environment keys
Then run:
make setup
# If you want, you can seed some questions
make seeds
๐ป Running the app locally
# Start the api server
make phx
# In a separate terminal window
make react
๐ค Deployment
Any code merged into main
will autodeploy through Render