Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/poustouflan/crypto-drink
CryptoHack flag announcement and local scoreboard
https://github.com/poustouflan/crypto-drink
cryptography cryptohack java maven postgres quarkus react scoreboard typescript vite
Last synced: 4 months ago
JSON representation
CryptoHack flag announcement and local scoreboard
- Host: GitHub
- URL: https://github.com/poustouflan/crypto-drink
- Owner: PoustouFlan
- License: mit
- Created: 2024-07-12T13:43:43.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-08-31T00:57:01.000Z (5 months ago)
- Last Synced: 2024-09-30T05:22:14.466Z (4 months ago)
- Topics: cryptography, cryptohack, java, maven, postgres, quarkus, react, scoreboard, typescript, vite
- Language: TypeScript
- Homepage: https://www.crypto-drink.com
- Size: 246 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CryptoDrink [Work In Progress!]
An instance of CryptoDrink is hosted at https://www.crypto-drink.com !
This is a complete rework of the previous Discord Bot [CryptoDrink](https://github.com/PoustouFlan/Crypto-Drink-Deprecated).
CryptoDrink allows anybody to create a local [CryptoHack](https://cryptohack.org) scoreboard with friends.
The scoreboards then can be linked to some Discord WebHooks, in order to receive automatic announcements when any user in the scoreboard solves a new challenge.
Whereas CryptoDrink was previously a Discord Bot, it will now also be a proxy and a website.## Proxy
CryptoDrink now features a proxy over CryptoHack's api, featuring many additional endpoints.- `/api/category` lists all known challenges of a category
- `/api/challenge` lists all known flaggers of a challenge in a scoreboard
- `/api/scoreboard` allows the creation of a scoreboard, the registration of users in a scoreboard and the connection of a scoreboard to a Discord webhook
- `/api/user` lists all known data about a user, as well as his completion progress for each categoryThe proxy is entirely coded in Java with Maven + Quarkus in the folder `src`, following the traditional layered architecture.
It uses a postgres database named `cryptodrink` which can be configured in the resources.
The backend should be started with maven.```bash
mvn clean package -Dquarkus.package.type=uber-jar
java -jar target/CryptoDrink2-1.0-runner.jar
```## Webhook
Flag announcement is now managed thanks to webhooks.
This is directly implemented in the backend: when the data regarding a user is updated, all new solved challenges are announced through all webhooks of all scoreboards the user belongs to.Preview:
## Website [Work in Progress]
A frontend features a convenient visualization of scoreboards and user data.
The frontend is coded using Vite/React/TypeScript, and should be started with npm.```bash
cd frontend
npm install
npm run build
```Create a scoreboard at https://www.crypto-drink.com/scoreboard, then register the CryptoHack users you want to appear on the scoreboard.
Preview: