{"id":15149297,"url":"https://github.com/pigmice2733/peregrine-backend","last_synced_at":"2025-10-24T05:31:35.255Z","repository":{"id":33258072,"uuid":"141372395","full_name":"Pigmice2733/peregrine-backend","owner":"Pigmice2733","description":"The future of FRC scouting","archived":false,"fork":false,"pushed_at":"2024-02-26T04:09:52.000Z","size":1438,"stargazers_count":18,"open_issues_count":20,"forks_count":4,"subscribers_count":9,"default_branch":"develop","last_synced_at":"2025-01-31T00:07:06.459Z","etag":null,"topics":["docker","frc","frc-scouting","go","json-api","postgresql","rest-api","robotics"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pigmice2733.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"custom":"https://squareup.com/market/pigmice"}},"created_at":"2018-07-18T02:50:20.000Z","updated_at":"2024-08-27T07:58:29.000Z","dependencies_parsed_at":"2024-06-19T01:49:06.338Z","dependency_job_id":"d4db751f-9faa-4229-96f5-4b97aee5672d","html_url":"https://github.com/Pigmice2733/peregrine-backend","commit_stats":{"total_commits":531,"total_committers":16,"mean_commits":33.1875,"dds":"0.38794726930320156","last_synced_commit":"6eacc0ade63715323885682f9dc653a93202f193"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pigmice2733%2Fperegrine-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pigmice2733%2Fperegrine-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pigmice2733%2Fperegrine-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pigmice2733%2Fperegrine-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pigmice2733","download_url":"https://codeload.github.com/Pigmice2733/peregrine-backend/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237918710,"owners_count":19387305,"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":["docker","frc","frc-scouting","go","json-api","postgresql","rest-api","robotics"],"created_at":"2024-09-26T13:43:35.262Z","updated_at":"2025-10-24T05:31:31.351Z","avatar_url":"https://github.com/Pigmice2733.png","language":"Go","funding_links":["https://squareup.com/market/pigmice"],"categories":[],"sub_categories":[],"readme":"# Peregrine\n\n[![GoDoc](https://godoc.org/github.com/Pigmice2733/peregrine-backend?status.svg)](https://godoc.org/github.com/Pigmice2733/peregrine-backend)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Pigmice2733/peregrine-backend)](https://goreportcard.com/report/github.com/Pigmice2733/peregrine-backend)\n[![GitHub](https://img.shields.io/github/license/Pigmice2733/peregrine-backend.svg)](https://github.com/Pigmice2733/peregrine-backend/blob/master/LICENSE.md)\n\nPeregrine is a HTTP JSON API written in Go for scouting and analysis of FIRST Robotics competitions.\n\nFor a description of what scouting is, please view the [SCOUTING.md](SCOUTING.md).\n\n## Setup\n\n1. Install [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [Go](https://golang.org/doc/install) (1.14)\n\n2. Clone the repo:\n\n```\ngit clone git@github.com:Pigmice2733/peregrine-backend.git\n```\n\n4. Change directory to the repo root:\n\n```\ncd peregrine-backend\n```\n\n5. [Install PostgreSQL](https://www.postgresql.org/download/) and start the server.\n\n6. Install the `peregrine` binary:\n\n\u003e **NOTE**: If you cloned the repo to somewhere in your GOPATH (e.g. with `go get`) you'll need to `export GO111MODULE=on`.\n\n```\ngo generate ./... # neccessary to compile OpenAPI documentation into the binary\ngo install ./...\n```\n\n7. Create the peregrine database:\n\n```\ncreatedb -U postgres peregrine\n```\n\n8. Copy the config template:\n\n```\ncp template.json config.json\n```\n\n9. Modify `config.json` as neccesary. You will likely not need to change anything besides the TBA API key and the JWT secret if you followed the instructions here. You will need to go to the [TBA account page](https://www.thebluealliance.com/account) and get a read API key and set `apiKey` under the `tba` section to the read API key you register. Set the JWT secret to the output from `uuidgen -r`.\n\n10. Download [golang-migrate](https://github.com/golang-migrate/migrate/tree/master/cli) and run the database migrations:\n\n```\nmigrate -database \"postgres://postgres@localhost:5432/peregrine?sslmode=disable\" -path \"$(pwd)/migrations\" up\n```\n\n11. Run the app:\n\n```\nperegrine config.json\n```\n\n## API Documentation\n\nPeregrine's entire API is documented with OpenAPI 3.0.0 (previously known as Swagger). You can\nview the documentation [here](https://github.com/Pigmice2733/peregrine-backend/blob/develop/internal/server/openapi.yaml).\nIf you notice any inaccuracies please let us know so the documentation can be corrected.\n\n## Testing\n\n```\ngo test -v ./...\n```\n\n## Contributing\n\n1. Create a branch with a name that briefly describes the feature (e.g. `report-endpoints`):\n\n```\ngit checkout -b report-endpoints\n```\n\n2. Add your commits to the branch:\n\n```\ngit add internal/foo/bar.go\ngit commit -m \"Add the initial report endpoints\"\n```\n\n3. Verify that your tests pass (see the [testing section](#testing)). If they don't then fix them and add a commit.\n\n4. Push the branch to the remote github repo:\n\n```\ngit push -u origin report-endpoints\n```\n\n4. Visit the project on Github, go to Pull Requests, and hit New Pull Request.\n5. Fill out the template.\n6. Assign relevant reviewers, assign yourself, add any applicable labels, assign any applicable projects, and hit Create Pull Request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpigmice2733%2Fperegrine-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpigmice2733%2Fperegrine-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpigmice2733%2Fperegrine-backend/lists"}