{"id":16890451,"url":"https://github.com/jedevc/hackthemidlandsbadges22","last_synced_at":"2026-05-18T03:03:31.780Z","repository":{"id":40473996,"uuid":"504061038","full_name":"jedevc/HackTheMidlandsBadges22","owner":"jedevc","description":":name_badge: Interactive badges from HackTheMidlands 7.0","archived":false,"fork":false,"pushed_at":"2023-01-22T16:12:06.000Z","size":728,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-10-09T11:09:17.005Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://badges.hackthemidlands.com/","language":"Python","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/jedevc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-16T07:46:03.000Z","updated_at":"2024-11-04T17:29:54.000Z","dependencies_parsed_at":"2023-02-12T17:00:16.814Z","dependency_job_id":null,"html_url":"https://github.com/jedevc/HackTheMidlandsBadges22","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jedevc/HackTheMidlandsBadges22","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2FHackTheMidlandsBadges22","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2FHackTheMidlandsBadges22/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2FHackTheMidlandsBadges22/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2FHackTheMidlandsBadges22/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedevc","download_url":"https://codeload.github.com/jedevc/HackTheMidlandsBadges22/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2FHackTheMidlandsBadges22/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002668,"owners_count":26083442,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-13T17:03:12.832Z","updated_at":"2025-10-10T04:42:49.181Z","avatar_url":"https://github.com/jedevc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HTM interactive badges\n\n![](./htm-logo.png)\n\nThis is the source code for the interactive badges at HackTheMidlands 7.0\n:tada:\n\nFeel free to contribute, or to fork it and make your own for your own event!\n\n## Development\n\nFirst, make sure that Docker is installed.\n\nNext, clone the repository:\n\n    git clone https://github.com:jedevc/badge-view.git --recursive\n\nThen, create a `.env` file configured to your preferences. For example:\n\n    cp .env.example .env\n\nStart the development server:\n\n    docker compose --profile=dev up --build\n\nThe frontend should be visible at \u003chttp://frontend.localhost\u003e, while the\nbackend should be visible at \u003chttp://backend.localhost\u003e.\n\n### Linting\n\nTo run auto-formatting:\n\n    make fmt\n\nAnd to run type-checking using mypy:\n\n    make mypy\n\n## Production\n\nFollow the same steps to setup a development environment, then build the\nbackend server:\n\n    docker compose --profile=prod build prod-backend\n\nBring up the backend:\n\n    docker compose --profile=prod up -d prod-reverse-proxy prod-backend db\n\nCreate a token using the `/docs` backend UI and your pre-made master token. It\nshould have the following permissions:\n\n```json\n{\n  \"badges\": {\n    \"read\": [\"*\"],\n    \"write\": [],\n    \"create\": false,\n    \"enumerate\": false\n  },\n  \"users\": {\n    \"read\": [],\n    \"write\": [],\n    \"create\": false,\n    \"enumerate\": false\n  },\n  \"tokens\": {\n    \"read\": [],\n    \"write\": [],\n    \"create\": false,\n    \"enumerate\": false\n  },\n  \"store\": {\n    \"badges\": {\n      \"read\": [\"*\"],\n      \"write\": [],\n      \"create\": false,\n      \"enumerate\": false\n    },\n    \"keys\": {\n      \"read\": [\"code\"],\n      \"write\": [],\n      \"create\": false,\n      \"enumerate\": false\n    }\n  }\n}\n```\n\nUse the provided token to populate `FRONTEND_DEFAULT_TOKEN` in your `.env`.\n\nFinally, build and bringup up the rest of the servers:\n\n    docker compose --profile=prod up --build -d\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedevc%2Fhackthemidlandsbadges22","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedevc%2Fhackthemidlandsbadges22","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedevc%2Fhackthemidlandsbadges22/lists"}