{"id":15096067,"url":"https://github.com/euanwm/openweightlifting","last_synced_at":"2026-04-01T23:57:58.557Z","repository":{"id":58090523,"uuid":"490042415","full_name":"euanwm/OpenWeightlifting","owner":"euanwm","description":"Repository that is deployed for the OpenWeightlifting site","archived":false,"fork":false,"pushed_at":"2025-06-11T22:02:45.000Z","size":37009,"stargazers_count":38,"open_issues_count":10,"forks_count":22,"subscribers_count":4,"default_branch":"development","last_synced_at":"2025-06-11T22:43:47.256Z","etag":null,"topics":["docker","gin-gonic","golang","heroku","nextjs","olympic","python","python3","react","sports-analytics","statistics","weightlifting"],"latest_commit_sha":null,"homepage":"https://www.openweightlifting.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/euanwm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["euanwm"]}},"created_at":"2022-05-08T19:58:31.000Z","updated_at":"2025-06-11T22:02:44.000Z","dependencies_parsed_at":"2023-09-26T01:22:29.276Z","dependency_job_id":"2539f88d-09b0-4f5e-82d8-608e17f3b2f0","html_url":"https://github.com/euanwm/OpenWeightlifting","commit_stats":null,"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/euanwm/OpenWeightlifting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euanwm%2FOpenWeightlifting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euanwm%2FOpenWeightlifting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euanwm%2FOpenWeightlifting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euanwm%2FOpenWeightlifting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/euanwm","download_url":"https://codeload.github.com/euanwm/OpenWeightlifting/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euanwm%2FOpenWeightlifting/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260684164,"owners_count":23046102,"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","gin-gonic","golang","heroku","nextjs","olympic","python","python3","react","sports-analytics","statistics","weightlifting"],"created_at":"2024-09-25T15:45:16.323Z","updated_at":"2026-01-26T00:29:24.670Z","avatar_url":"https://github.com/euanwm.png","language":"Go","funding_links":["https://github.com/sponsors/euanwm"],"categories":[],"sub_categories":[],"readme":"# OpenWeightlifting\nThis is the monorepo for the OpenWeightlifting.org project. The aim of this project is to build a database of the latest Olympic Weightlifting results from all around the world. This originally started from a scraping tool and quickly grew into what you see here now. All the results within the database were pulled directly from the event results pages from the National Governing Body of that nation. We try to avoid manual data entry so this is all done with our tooling written in Python.\n\n# Licensing, Data, and Comms\n\n## Code Licensing\nDone this under the BSD-3-Clause license. Simply because it's what the sport80 library is under and i'm hella lazy.\n\n## Data Licensing\nOpenWeightlifting data (`*.csv`) under `event_data/` is contributed to the public domain.\n\nThe OpenWeightlifting database contains facts that, in and of themselves,\u003cbr/\u003e\nare not protected by copyright law. However, the copyright laws of some jurisdictions\u003cbr/\u003e\nmay cover database design and structure.\n\nTo the extent possible under law, all data (`*.csv`) in the `event_data/` folder is waived\u003c/br\u003e\nof all copyright and related or neighboring rights. The work is published from the United Kingdom.\n\nAlthough you are under no requirement to do so, if you incorporate OpenWeightlifting\u003c/br\u003e\ndata into your project, please consider adding a statement of attribution\u003c/br\u003e\nso that people may know about this project and help contribute data.\n\nSample attribution text:\n\n\u003e This page uses data from the OpenWeightlifting project, https://www.openweightlifting.org.\u003cbr/\u003e\n\u003e You may download a copy of the data at https://github.com/euanwm/OpenWeightlifting.\n\nIf you modify the data or add useful new data, please consider contributing\u003cbr/\u003e\nthe changes back so the entire (olympic) weightlifting community may benefit.\n\n## Project Discord\nWe have a somewhat small Discord, feel free to join it as it's the quickest way to reach any of the contributors on the project\nhttps://discord.com/invite/kqnBqdktgr\n\n\n# Testing, Building, and Nerding\n\n## Why Golang for the backend? \nOriginally it was Python but the build time was terrible and the response times were slow. Not only that but the memory usage was high. Golang was chosen because it's fast, has a low memory footprint and the build times are quick. It's also a language that's easy to pick up and learn. We migrated from Python to Golang within in a week of picking up the language.\n\n## Why NextJS for the frontend?\nThis was a bit of a no brainer. We wanted to use React and NextJS (TS) is a great framework for it. The amount of features around rounting, server side rendering and static site generation is great. While it can also serve as a backend, we've chosen to keep the backend and frontend separate due the performance benefits of having a dedicated backend.\n\n## Local Testing\nMajority of the contributors on this are FE developers, so we've containerised the front and backend portions of the project. To get going quickly with the project, you'll need to have docker installed.\n\n## Frontend Development (NextJS)\nFrom the root of the project, run the following commands to spin up a backend container and launch the frontend.\n```bash\ndocker compose up -d backend\ncd frontend\nnpm install\nnpm run dev\n```\nWhile the backend service is running, you'll also be able to run the FE API call tests against it.\n```bash\nnpm run test\n```\n\nOnce you're done, you can stop the backend container with the following command.\n```bash\ndocker compose down\n```\n\n## Backend Development (Golang)\nWhen launching the backend service you'll need to toggle the CORS flag which is done be adding the 'local' argument when calling the executable.\n```bash\ngo build backend.go\n./backend local\n```\n\n## Database Management (Python)\nTo pull the latest results from the all relevant federations, we've added a Makefile with a few commands to make it easier. You'll need to have pipenv installed to run the commands.\n## Pulling the latest results\n```bash\nmake update_database\n```\n\n## Staging the latest results\nThis came about so if you have a messy amount of unstaged changes, you can stage them all and then commit them in one go.\n```bash\nmake stage_csv\n```\n\n## Checking the database\nIn order to reduce the amount of checks at runtime, we've added a check to make sure the database is in a good state. This will check for duplicate entries and missing data.\n```bash\nmake check_db\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuanwm%2Fopenweightlifting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feuanwm%2Fopenweightlifting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuanwm%2Fopenweightlifting/lists"}