{"id":37151731,"url":"https://github.com/gitrgoliveira/bracket-creator","last_synced_at":"2026-01-14T17:55:06.531Z","repository":{"id":198045121,"uuid":"644099302","full_name":"gitrgoliveira/bracket-creator","owner":"gitrgoliveira","description":"simple cli to create Kendo tournament brackets","archived":false,"fork":false,"pushed_at":"2025-11-27T15:35:08.000Z","size":8044,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-30T05:53:24.527Z","etag":null,"topics":["brackets","kendo","tournament-bracket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitrgoliveira.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-22T20:16:36.000Z","updated_at":"2025-11-27T15:35:12.000Z","dependencies_parsed_at":"2025-08-07T00:07:37.766Z","dependency_job_id":"b9754bd6-9340-400e-a21d-23d24ab1f409","html_url":"https://github.com/gitrgoliveira/bracket-creator","commit_stats":null,"previous_names":["gitrgoliveira/bracket-creator"],"tags_count":20,"template":false,"template_full_name":"thazelart/golang-cli-template","purl":"pkg:github/gitrgoliveira/bracket-creator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitrgoliveira%2Fbracket-creator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitrgoliveira%2Fbracket-creator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitrgoliveira%2Fbracket-creator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitrgoliveira%2Fbracket-creator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitrgoliveira","download_url":"https://codeload.github.com/gitrgoliveira/bracket-creator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitrgoliveira%2Fbracket-creator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28429019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["brackets","kendo","tournament-bracket"],"created_at":"2026-01-14T17:55:05.823Z","updated_at":"2026-01-14T17:55:06.520Z","avatar_url":"https://github.com/gitrgoliveira.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN __DO_NOT_INCLUDE__ --\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/gitrgoliveira/bracket-creator/blob/main/logo/bracket-creator.v2.jpeg?raw=true\" alt=\"Logo\" height=\"120\" /\u003e\u003c/p\u003e\n\u003c!-- END __DO_NOT_INCLUDE__ --\u003e\n\u003ch1 align=\"center\"\u003e bracket-creator\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/gitrgoliveira/bracket-creator/releases\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"GitHub release (latest SemVer including pre-releases)\" src=\"https://img.shields.io/github/v/release/gitrgoliveira/bracket-creator?include_prereleases\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/gitrgoliveira/bracket-creator/actions/workflows/release.yaml\" rel=\"nofollow\"\u003e\n    \u003cimg src=\"https://github.com/gitrgoliveira/bracket-creator/actions/workflows/release.yaml/badge.svg\" alt=\"goreleaser\" style=\"max-width:100%;\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://pkg.go.dev/github.com/gitrgoliveira/bracket-creator\" rel=\"nofollow\"\u003e\n    \u003cimg src=\"https://pkg.go.dev/badge/github.com/gitrgoliveira/bracket-creator.svg\" alt=\"Go reference\" style=\"max-width:100%;\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/gojp/goreportcard/blob/master/LICENSE\" rel=\"nofollow\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Apache 2.0-blue.svg\" alt=\"License Apache 2.0\" style=\"max-width:100%;\"\u003e\n  \u003c/a\u003e\n\n  \u003cbr/\u003e\n\n  \u003ca href=\"https://codecov.io/gh/gitrgoliveira/bracket-creator\" \u003e\n    \u003cimg src=\"https://codecov.io/gh/gitrgoliveira/bracket-creator/branch/main/graph/badge.svg?token=CLP6KW4QLK\"/\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/gitrgoliveira/bracket-creator/actions/workflows/codeql.yaml\" rel=\"nofollow\"\u003e\n    \u003cimg src=\"https://github.com/gitrgoliveira/bracket-creator/actions/workflows/codeql.yaml/badge.svg\" alt=\"codeql\" style=\"max-width:100%;\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://goreportcard.com/report/github.com/gitrgoliveira/bracket-creator\" rel=\"nofollow\"\u003e\n    \u003cimg src=\"https://goreportcard.com/badge/github.com/gitrgoliveira/bracket-creator\" alt=\"Go report card\" style=\"max-width:100%;\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\nA CLI to create kendo tournament brackets\n\n\u003c!-- BEGIN __DO_NOT_INCLUDE__ --\u003e\n\n## Usage\n\nDownload the pre-compiled binaries from the [release page](https://github.com/gitrgoliveira/bracket-creator/releases) page and copy them to the desired location.\n\nTo use the web front end run this command and open your browser on http://localhost:8080\n```bash\nbracket-creator serve\n```\n\nYou can also use docker with:\n```bash\ndocker run -p 8080:8080 ghcr.io/gitrgoliveira/bracket-creator/bracket-creator:latest\n```\n\nor docker-compose to run the web server:\n```bash\ndocker-compose up -d\n```\n\n\nThere's also a CLI. To learn how to use the CLI run:\n```bash\nbracket-creator --help\nbracket-creator create-pools --help\nbracket-creator create-playoffs --help\n```\n\nExample to build the tool from source:\n```bash\nmake go/build\n```\n\n### Input file format\n\nThe input file can be a simple list of names or a CSV formatted file.\nFor example:\n```csv\nFirst_Name Last_Name, Dojo\n```\nFor teams, it should be just one team per line.\n\nWhen using the CSV formatted style, `Dojo` is only used to try to ensure players/teams don't meet someone of the same dojo **when doing pools.**\n\n### Customizing the web server\nTo set the listen address and port run:\n```bash\nbracket-creator serve --listen-address 0.0.0.0 --listen-port 8080\n```\n\nYou can also use the environment variables:\n```bash\nexport BIND_ADDRESS=0.0.0.0\nexport PORT=8080\n```\n\n\n### CLI Parameters to create Pools\nExample command line to create pools with 5 players and 3 winners per pool:\n```bash\nbracket-creator create-pools -s -p 5 -w 3 -f ./mock_data_medium.csv -o ./pools-example.xlsx\n```\n\n* `-d` / `-determined` - Do not shuffle the names read from the input file\n* `-f` / `-file` - Path to the CSV file containing the players/teams in `Name, Dojo` format. `Dojo` is a field to ensure players/teams don't endup fighting someone of the same dojo\n* `-h` / `-help` - Show help\n* `-o` / `-output` - Path to write the output excel file\n* `-p` / `-players` - Minimum number of players/teams per pool. Extra players are added to the end of the pool if there are more than expected. The default is 3\n* `-w` / `-pool-winners` - Number of players/teams that can qualify from each pool. The default is 2\n* `-r` / `-round-robin` - Round robin, to ensure that in a pool of 4 or more, everyone would fight everyone. Otherwise, everyone fights only twice in their pool. The default is False\n* `-s` / `-sanitize` - sanitize print names into first name initial and capitalize the last name. This is useful for individual player tournaments.\n* `-t` / `-team-matches` - Create team matches with x players per team. Default is 0, which means these are not team matches\n\n### CLI Parameters to create Playoffs\nExample command line to create team playoffs with 5 players per team:\n```bash\nbracket-creator create-playoffs -t 5 -f ./mock_data_small.csv -o ./playoffs-example.xlsx\n```\n\n* `-d` / `-determined` - Do not shuffle the names read from the input file\n* `-f` / `-file` - Path to the CSV file containing the players/teams in `Name, Dojo` format. `Dojo` is a field to ensure players/teams don't endup fighting someone of the same dojo\n* `-h` / `-help` - Show help\n* `-o` / `-output` - Path to write the output excel file\n* `-s` / `-sanitize` - sanitize print names into first name initial and capitalize the last name. This is useful for individual player tournaments.\n* `-t` / `-team-matches` - Create team matches with x players per team. Default is 0, which means these are not team matches\n\n### Examples\nSee also the example files created by the Makefile:\n- [playoffs-example-large.xlsx](playoffs-example-large.xlsx)\n- [playoffs-example-medium.xlsx](playoffs-example-medium.xlsx)\n- [playoffs-example-small.xlsx](playoffs-example-small.xlsx)\n- [pools-example-large.xlsx](pools-example-large.xlsx)\n- [pools-example-medium.xlsx](pools-example-medium.xlsx)\n- [pools-example-small.xlsx](pools-example-small.xlsx)\n\n**Individual pool player tournament**\n\nWith 4 players and 2 winners per pool with sanitized names:\n```bash\n./bin/bracket-creator create-pools -s -p 4 -f mock_data.csv -o output.xlsx\n```\n\n**Team pool tournament**\n\nWith 5 players per team:\n```bash\n./bin/bracket-creator create-pools -t 5 -f mock_data.csv -o output.xlsx \n```\n**Individual playoffs player tournament**\n\nStraight knockout with sanitized names:\n```bash\n./bin/bracket-creator create-playoffs -s -f mock_data.csv -o output.xlsx\n```\n\n**Team pool tournament**\n\nStraight knockout team competition with teams of 3:\n```bash\n./bin/bracket-creator create-playoffs -t 3 -f mock_data.csv -o output.xlsx\n```\n\n## How to Use the output files\nAll generated output files are based on the `template.xlsx` file and to customise it you will need to edit the final file.\n\nTo be able to print the tree, you will need to reset the width and height in the Page Layout tab.\n\n### On the day of the tournament\nThese files are generated to be uploaded to Google Drive (or similar), so all shiai-jo tables are in sync during the tournament, working from the same file.\n\n\n## Install - WIP\n\nPlease use the pre-compiled binaries from the [release page](https://github.com/gitrgoliveira/bracket-creator/releases) or build from sratch with `make go/build`\nThe instructions below do not work yet.\n\n*You can install the pre-compiled binary (in several ways), use Docker or compile from source (when on OSS).*\n\n*Below you can find the steps for each of them.*\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003ehomebrew tap\u003c/h3\u003e\u003c/summary\u003e\n\n```bash\nbrew install gitrgoliveira/tap/bracket-creator\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003eapt\u003c/h3\u003e\u003c/summary\u003e\n\n```bash\necho 'deb [trusted=yes] https://apt.fury.io/gitrgoliveira/ /' | sudo tee /etc/apt/sources.list.d/gitrgoliveira.list\nsudo apt update\nsudo apt install bracket-creator\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003eyum\u003c/h3\u003e\u003c/summary\u003e\n\n```bash\necho '[gitrgoliveira]\nname=Gemfury gitrgoliveira repository\nbaseurl=https://yum.fury.io/gitrgoliveira/\nenabled=1\ngpgcheck=0' | sudo tee /etc/yum.repos.d/gitrgoliveira.repo\nsudo yum install goreleaser\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003edeb, rpm and apk packages\u003c/h3\u003e\u003c/summary\u003e\nDownload the .deb, .rpm or .apk packages from the [release page](https://github.com/gitrgoliveira/bracket-creator/releases) and install them with the appropriate tools.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003ego install\u003c/h3\u003e\u003c/summary\u003e\n\n```bash\ngo install github.com/gitrgoliveira/bracket-creator@latest\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003efrom the GitHub releases\u003c/h3\u003e\u003c/summary\u003e\n\nDownload the pre-compiled binaries from the [release page](https://github.com/gitrgoliveira/bracket-creator/releases) page and copy them to the desired location.\n\n```bash\n$ VERSION=v1.0.0\n$ OS=Linux\n$ ARCH=x86_64\n$ TAR_FILE=bracket-creator_${OS}_${ARCH}.tar.gz\n$ wget https://github.com/gitrgoliveira/bracket-creator/releases/download/${VERSION}/${TAR_FILE}\n$ sudo tar xvf ${TAR_FILE} bracket-creator -C /usr/local/bin\n$ rm -f ${TAR_FILE}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003emanually\u003c/h3\u003e\u003c/summary\u003e\n\n```bash\n$ git clone github.com/gitrgoliveira/bracket-creator\n$ cd bracket-creator\n$ go generate ./...\n$ go install\n```\n\n\u003c/details\u003e\n\n## Contribute to this repository\n\nThis project adheres to the Contributor Covenant [code of conduct](https://github.com/gitrgoliveira/bracket-creator/blob/main/.github/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. We appreciate your contribution. Please refer to our [contributing](https://github.com/gitrgoliveira/bracket-creator/blob/main/.github/CONTRIBUTING.md) guidelines for further information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitrgoliveira%2Fbracket-creator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitrgoliveira%2Fbracket-creator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitrgoliveira%2Fbracket-creator/lists"}