TheQuoter (also known as "Hláškomat") is will be server application for storing and viewing quotes (or rather, funny catchphrases). It was made for a school environment, but that may be subject to change (probably not since that would mean a lot of work).
Role | Description |
---|---|
admin |
Manager of the database, accepts global quotes |
moderator |
Can accept quotes from their own class, and moderates them |
user |
Member of a class, can submit quotes globally or for their class |
guest |
Can view only global quotes, but cannot submit any, can request to join a class |
These permissions aren't implemented yet.
Role | View | Promote to user | Remove from class |
---|---|---|---|
admin |
✅ | ✅ | ✅ |
moderator |
Same class | Same class | Same class |
Themself | ✅ | ❌ | ✅ |
Symbol | Meaning |
---|---|
P |
Public |
W |
Pending |
S |
Same class (as the user) |
N |
No class |
O |
Own (Means user's existing) |
A |
Any |
X |
None |
Role | Create | View | Edit | Publish | Delete |
---|---|---|---|---|---|
admin |
A |
A |
A |
A |
A |
moderator |
PS, WN |
P(S, N), W(S, O) |
W(S, O) |
WS |
W(S, O) |
user |
W(S, N) |
P(S, N), WO |
WO |
X |
WO |
guest |
X |
PN |
X |
X |
X |
Role | View | Modify |
---|---|---|
admin |
✅ | ✅ |
Others | ✅ | ❌ |
Role | View | Modify |
---|---|---|
admin |
✅ | ✅ |
Others | ✅ | ❌ |
Be aware that the application is not yet fully functional.
Before you can use the application, you need to have a MongoDB cluster running.
Env configuration:
# Configure theses variables to your liking
RATELIMIT_WINDOW_MS=60000
RATELIMIT_DELAY_AFTER=10
RATELIMIT_DELAY_MS=500
RATELIMIT_MAX=20
MONGODB_URI=<URI>
JWT_SECRET=<RANDOM> # Replace with a random string
PORT=<PORT>
# Use the tag from the badge above without the `v`
docker pull maximmaxims/thequoter:<TAG>
docker run -p 3000:<PORT> --env-file ".env" maximmaxims/thequoter:<TAG>
git clone https://github.com/MaximMaximS/TheQuoter.git
cd TheQuoter
npm install --omit=dev --ignore-scripts
npm run build
npm run start