Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryan-willis/qotd
A realtime question-of-the-day web app with support for multiple rooms
https://github.com/ryan-willis/qotd
qotd question-and-answer question-of-the-day realtime websockets
Last synced: 6 days ago
JSON representation
A realtime question-of-the-day web app with support for multiple rooms
- Host: GitHub
- URL: https://github.com/ryan-willis/qotd
- Owner: ryan-willis
- Created: 2024-01-15T17:24:02.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-08-11T20:21:17.000Z (3 months ago)
- Last Synced: 2024-09-17T09:20:33.477Z (about 2 months ago)
- Topics: qotd, question-and-answer, question-of-the-day, realtime, websockets
- Language: Go
- Homepage: https://qotd.r7.cx
- Size: 63.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# QOTD
A realtime question-of-the-day web app supporting multiple rooms.
![](docs/screenshot.jpg)
## Tech Stack
### Backend
- [Go](https://golang.org/)
- [Gin](https://gin-gonic.com/)
- [Gorilla WebSockets](https://github.com/gorilla/websocket)
- [gin-rate-limit](https://github.com/JGLTechnologies/gin-rate-limit)
- [Redis](https://redis.io/) (optional)### Frontend
- [React](https://reactjs.org/)
- [Mantine](https://mantine.dev/)
- [react-use-websocket](https://github.com/robtaussig/react-use-websocket)## Running QOTD
### Docker
To run the application yourself, you can start the published Docker image:
```sh
docker run -d -p 9075:9075 ghcr.io/ryan-willis/qotd:latest
```Then visit [http://localhost:9075](http://localhost:9075) in your browser.
### Development
You must have Go and Node installed on your machine to run the application in development.
macOS (via homebrew):
```sh
brew install go nvm
nvm use 22
```Install dependencies:
```sh
npm install
```Start the webserver:
```sh
npm run webserver
```Then start the Vite dev server in a separate terminal:
```sh
npm run dev
```Then visit [http://localhost:5173](http://localhost:5173) in your browser.