{"id":19107286,"url":"https://github.com/govtechsg/fight-club","last_synced_at":"2026-06-20T15:31:50.470Z","repository":{"id":78493645,"uuid":"130196945","full_name":"GovTechSG/fight-club","owner":"GovTechSG","description":null,"archived":false,"fork":false,"pushed_at":"2018-11-14T08:17:20.000Z","size":82,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-02-22T10:31:36.600Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GovTechSG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-04-19T10:07:23.000Z","updated_at":"2018-11-14T08:17:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6157f3c-dd1f-4955-b214-27c13e48e98d","html_url":"https://github.com/GovTechSG/fight-club","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GovTechSG/fight-club","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Ffight-club","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Ffight-club/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Ffight-club/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Ffight-club/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GovTechSG","download_url":"https://codeload.github.com/GovTechSG/fight-club/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Ffight-club/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34576042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"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-11-09T04:12:00.724Z","updated_at":"2026-06-20T15:31:50.450Z","avatar_url":"https://github.com/GovTechSG.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fight Club\n\nFight Club is a simple Demo Application to demonstrate containerization and communication between services.\n\n# Features:\n* Display Health bar for two sides, red team and blue team \n* Players should be able to hit either the red team or blue team.\n* Admin should be able to reset the game.\n\n# TODO:\n* Show game statistics, such as player with the highest number of hits, double agents, etc...\n* Show backend application statistics, such as backend replica used in hits, app metrics, etc...\n* Upload and Select pictures for use in-game\n* Timed games\n* Combo meter and combo attacks\n\n# Environment Variables\n## Game Master Variables\nThe following is a list of environment variables applicable to game masters only.\n* GAME_DAMAGE_CONTROLLER_PROTOCOL: The protocol used by the Damage Controller server.\n* GAME_DAMAGE_CONTROLLER_HOST: Host URI of Damage Controller server.\n* GAME_DAMAGE_CONTROLLER_PORT: Port of Damage Controller server.\n\nExample (http://damagecontroller.domain.com:3000):\n```$xslt\nGAME_DAMAGE_CONTROLLER_PROTOCOL=http\nGAME_DAMAGE_CONTROLLER_HOST=damagecontroller.domain.com\nGAME_DAMAGE_CONTROLLER_PORT=3000\n```\n* STARTING_HP: Indicates how much HP at the start. ONLY applicable to game master\n```$xslt\nSTARTING_HP=100\n```\n\n## Damage Controller Variables\n* HIT_POINT: Indicates how much points does each hit will incur. ONLY applicable to damage controller.\n```$xslt\nHIT_POINT=1\n```\n\n## Common Variables\n* NODE_ENV: Determines what config to load. For example, if the value is development, the configuration config/development.js will be read.\n\nExample:\n```$xslt\nNODE_ENV=development\n```\n\n* GAME_SERVER_OPTS_SERVER_TYPE: Indicates what role(s) this server is. Can be either gamemaster or damagecontroller or both (delimited by ',').\n\nExample:\n```$xslt\nGAME_SERVER_OPTS_SERVER_TYPE=gamemaster,damagecontroller\n```\n\n* SERVER_PORT: Indicates what port should this server be listening at.\n\nExample:\n```$xslt\nSERVER_PORT=3000\n```\n\n* REDIS_URI: URI of Redis server. Note that Game Master and Damage Controller have to point to same Redis server.\n* REDIS_DB_INDEX: The redis DB index to use.\nExample:\n```$xslt\nREDIS_URI=redis://localhost:6379\nREDIS_DB_INDEX=0\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovtechsg%2Ffight-club","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgovtechsg%2Ffight-club","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovtechsg%2Ffight-club/lists"}