{"id":15013737,"url":"https://github.com/poustouflan/crypto-drink","last_synced_at":"2025-04-12T05:45:25.422Z","repository":{"id":248135648,"uuid":"827840030","full_name":"PoustouFlan/Crypto-Drink","owner":"PoustouFlan","description":"CryptoHack flag announcement and local scoreboard","archived":false,"fork":false,"pushed_at":"2024-08-31T00:57:01.000Z","size":252,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T05:45:13.087Z","etag":null,"topics":["cryptography","cryptohack","java","maven","postgres","quarkus","react","scoreboard","typescript","vite"],"latest_commit_sha":null,"homepage":"https://www.crypto-drink.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PoustouFlan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-12T13:43:43.000Z","updated_at":"2025-03-23T21:56:44.000Z","dependencies_parsed_at":"2024-08-17T16:21:58.716Z","dependency_job_id":"427fad6f-9c5f-4787-983f-68119a5c5050","html_url":"https://github.com/PoustouFlan/Crypto-Drink","commit_stats":{"total_commits":97,"total_committers":4,"mean_commits":24.25,"dds":0.5360824742268041,"last_synced_commit":"cd481c4b707b6da17d1b5c24b510e096eff665ea"},"previous_names":["poustouflan/crypto-drink"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoustouFlan%2FCrypto-Drink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoustouFlan%2FCrypto-Drink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoustouFlan%2FCrypto-Drink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoustouFlan%2FCrypto-Drink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PoustouFlan","download_url":"https://codeload.github.com/PoustouFlan/Crypto-Drink/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525154,"owners_count":21118616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","cryptohack","java","maven","postgres","quarkus","react","scoreboard","typescript","vite"],"created_at":"2024-09-24T19:44:43.903Z","updated_at":"2025-04-12T05:45:25.399Z","avatar_url":"https://github.com/PoustouFlan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CryptoDrink [Work In Progress!]\n\nAn instance of CryptoDrink is hosted at https://www.crypto-drink.com !\n\nThis is a complete rework of the previous Discord Bot [CryptoDrink](https://github.com/PoustouFlan/Crypto-Drink-Deprecated).\nCryptoDrink allows anybody to create a local [CryptoHack](https://cryptohack.org) scoreboard with friends.\nThe 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.\nWhereas CryptoDrink was previously a Discord Bot, it will now also be a proxy and a website.\n\n## Proxy\nCryptoDrink now features a proxy over CryptoHack's api, featuring many additional endpoints.\n\n- `/api/category` lists all known challenges of a category\n- `/api/challenge` lists all known flaggers of a challenge in a scoreboard\n- `/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\n- `/api/user` lists all known data about a user, as well as his completion progress for each category \n\nThe proxy is entirely coded in Java with Maven + Quarkus in the folder `src`, following the traditional layered architecture.\nIt uses a postgres database named `cryptodrink` which can be configured in the resources.\nThe backend should be started with maven.\n\n```bash\nmvn clean package -Dquarkus.package.type=uber-jar\njava -jar target/CryptoDrink2-1.0-runner.jar\n```\n\n## Webhook\nFlag announcement is now managed thanks to webhooks.\nThis 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.\n\nPreview:\n\n\u003cimg src=\"https://github.com/user-attachments/assets/41415267-5934-4168-a620-ea9048dc1e1d\" alt=\"Flag announcement\" width=\"100\"/\u003e\n\n## Website [Work in Progress]\nA frontend features a convenient visualization of scoreboards and user data.\nThe frontend is coded using Vite/React/TypeScript, and should be started with npm.\n\n```bash\ncd frontend\nnpm install\nnpm run build\n```\n\nCreate a scoreboard at https://www.crypto-drink.com/scoreboard, then register the CryptoHack users you want to appear on the scoreboard.\n\nPreview:\n\n\u003cimg src=\"https://github.com/user-attachments/assets/e91e4822-4022-4526-8b8d-c5c4b50e585a\" alt=\"Scoreboard\" width=\"300\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoustouflan%2Fcrypto-drink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoustouflan%2Fcrypto-drink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoustouflan%2Fcrypto-drink/lists"}