{"id":18489026,"url":"https://github.com/nharraud/playfulbot","last_synced_at":"2025-05-13T22:32:44.909Z","repository":{"id":74122849,"uuid":"309507512","full_name":"nharraud/playfulbot","owner":"nharraud","description":"Platform to organize programming tournaments","archived":false,"fork":false,"pushed_at":"2025-04-27T18:55:50.000Z","size":7881,"stargazers_count":1,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-27T19:37:46.979Z","etag":null,"topics":["game","programming","team-building"],"latest_commit_sha":null,"homepage":"https://playfulbot.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nharraud.png","metadata":{"files":{"readme":"README.adoc","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,"zenodo":null}},"created_at":"2020-11-02T22:12:02.000Z","updated_at":"2025-04-25T19:26:39.000Z","dependencies_parsed_at":"2024-08-06T15:41:02.042Z","dependency_job_id":"53a3c7ee-b23d-4479-8cfd-4c020b7fdee1","html_url":"https://github.com/nharraud/playfulbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nharraud%2Fplayfulbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nharraud%2Fplayfulbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nharraud%2Fplayfulbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nharraud%2Fplayfulbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nharraud","download_url":"https://codeload.github.com/nharraud/playfulbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036813,"owners_count":22003655,"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":["game","programming","team-building"],"created_at":"2024-11-06T12:53:22.359Z","updated_at":"2025-05-13T22:32:44.885Z","avatar_url":"https://github.com/nharraud.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"PlayfulBot: Organize Programming Tournament\n-------------------------------------------\n:hide-uri-scheme:\n\nWARNING: Playfulbot is currently in alpha stage and some features are not yet implemented. You can see a demo version at https://playfulbot.com.\n\n\nWhat is PlayfulBot\n~~~~~~~~~~~~~~~~~~\n\nIt is a free and open source platform enabling the organization of programming tournaments.\n\n\nDesigned for team building\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis platform is mainly designed for IT teams in need of a team building event. However it can be used by any group of developers enjoying a challenge (students, etc...).\n\nNowadays IT teams often have remote teammates. Remote work usually reduces the opportunities for casual chat and bonding. Team building events are a good way to overcome this issue but it is not always possible to do them in person:\n\n* travel time can be expensive for the company and tiring for teammates.\n* teammates have to take care of their family.\n* regular travels are not eco-friendly.\n\nPlayfulBot complements in-person team building events with regular remote team building events. It specifically targets IT teams because its events require programming skills.\n\n\nProgramming Tournaments\n~~~~~~~~~~~~~~~~~~~~~~~\n\nPlayfulBot enables you to organize programming tournaments in a few clicks. Participants group into small teams and program bots which will compete against other teams in a game.\n\nTournaments have time constraints on purpose.\n\n* tournaments are short. They shouldn't go beyond office hours or you will disadvantage teammates with families.\n* tournaments include multiple rounds with a first round starting early in the competition. This encourages an agile approach, i.e. releasing a new bot version for each round even if it is not perfect.\n\nBots can be programmed in many different programming languages. For now only JS/TS is supported but Java, C++, C# and others are planned.\n\nPlayers can see how their bot plays direcly in their browser. Bots run on players' computers, which means that they can use all their preferred tools and even do step-by-step debugging.\n\n\nDeploying PlayfulBot\n~~~~~~~~~~~~~~~~~~~~\n\nBots run on teammates computers. Thus the server is a simple Node.JS process. There are plans to make it scallable later. \n\nPlayfulBot is currently deployed with Docker Compose. Note that it is a demonstration version. It enables you to program bots and let it play games but the full tournament experience is not there yet.\n\n\nOpen Source and extensible\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis project is open source so that additional games and features can be added by the community later on. Note that some refactoring needs to be done before we can add games via plugins, but the general architecture already supports it.\n\n\nPerformance\n~~~~~~~~~~~\n\nThe last benchmark showed that the server can handle approximately 150 games/second with a single server process. This is enough for a team building event of 40-60 teammates. Note that these performances depend on the game. The benchmark was made with a 2 player game where each player plays 50 turns and both players play simultaneously.\n\n\nRoadmap\n~~~~~~~\n\nYou can look at link:https://github.com/nharraud/playfulbot/projects/1[this github project] to see the status of version 1.0.0.\n\nMany ambitious features are envisionned for later versions and are not yet visible, for example:\n\n* design games accessible to people with visual impairment.\n* enable players to learn agorithms they need to win the game.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnharraud%2Fplayfulbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnharraud%2Fplayfulbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnharraud%2Fplayfulbot/lists"}