{"id":19892601,"url":"https://github.com/compscidr/llegend","last_synced_at":"2025-03-01T05:25:15.009Z","repository":{"id":89825142,"uuid":"518634668","full_name":"compscidr/llegend","owner":"compscidr","description":"local legend tools","archived":false,"fork":false,"pushed_at":"2023-09-26T17:47:27.000Z","size":87,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T01:35:13.435Z","etag":null,"topics":["golang","locallegend","strava"],"latest_commit_sha":null,"homepage":"","language":"Go","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/compscidr.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":"2022-07-27T23:03:11.000Z","updated_at":"2024-05-23T08:07:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"b7389ce5-42d6-46d8-9258-12a68f4cbd68","html_url":"https://github.com/compscidr/llegend","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/compscidr%2Fllegend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fllegend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fllegend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fllegend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/compscidr","download_url":"https://codeload.github.com/compscidr/llegend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241320930,"owners_count":19943816,"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":["golang","locallegend","strava"],"created_at":"2024-11-12T18:24:24.044Z","updated_at":"2025-03-01T05:25:14.979Z","avatar_url":"https://github.com/compscidr.png","language":"Go","readme":"# llegend\nWiP, but goal is:\n  - shows segments you are local legend of on a map\n  - color coding of the segment showing how close to being overtaken\n  - color red = someone is nearly passed efforts\n  - color green = many efforts before someone catches you\n  - color gray = lost LL\n  - later: show segments you are getting close to being LL for with similar color coding\n\n## building and running\nThere are three necessary environment variables to run. The first is the access\ntoken for the strava API, the second is the athlete ID, the third is the google maps API key.\n```\nACCESS_TOKEN=\nATHLETE=\nGMAPS=\n```\n\nYou can get a strava API token by creating an app here: https://www.strava.com/settings/api\nAnd you get the athlete id from your strave profile page (its at the end of the URL)\n\nThese can be set via `.env` file for docker and docker-compose, otherwise\nthey can be passed in via the command to run the program:\n\n### locally\n```\ngo build\nACCESS_TOKEN=\u003cinsert\u003e ATHLETE=\u003cinsert\u003e ./llegend \n```\n\n### docker\n```\ndocker build -f Dockerfile . -t llegend\ndocker run -p 8080:8080 --env-file .env llegend\n```\n\n### docker-compose\n`docker-compose up --build`\n\nThen browse to http://localhost:8080\n\n## What works\n- Can get starred segments for the user and determine whether or not local legend\n\n![screenshot of what works](screenshot.png)\n\n## Todo\n\n- Add map data for segment to data structure we return to template\n- Integrate some type of map API\n- Plot segments on map\n\n- For segments which we are LL for:\n  - Determine our current efforts in past 90 days from histogram\n  - Determine next nearest total from past 90 days from histogram\n  - Add difference score to data structure we return to template\n  - Plot map with colors corresponding to difference score\n\n- For segments which we are not LL for:\n  - Determine our current efforts in past 90 days from results\n  - Determine the current leaders 90 day effort\n  - Determine difference score\n  - Plot map with colors corresponding to difference score\n    - distinguish between those we are LL of and those we could become\n\n- Create periodic task to refresh data\n- Notify via email or something if about to lose LL\n- Tests\n- Spruce up the UI\n\n## inspiration projects\nhttp://www.raceleap.live/\nhttps://stravanity.vercel.app/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompscidr%2Fllegend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompscidr%2Fllegend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompscidr%2Fllegend/lists"}