{"id":13808924,"url":"https://github.com/edance/openpace","last_synced_at":"2025-05-14T03:31:52.358Z","repository":{"id":26641840,"uuid":"108607735","full_name":"edance/openpace","owner":"edance","description":"🏃 Track Runs and Workouts","archived":false,"fork":false,"pushed_at":"2024-11-14T19:15:13.000Z","size":8549,"stargazers_count":43,"open_issues_count":14,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-14T19:23:58.573Z","etag":null,"topics":["elixir","phoenix","runner","running"],"latest_commit_sha":null,"homepage":"https://www.openpace.co","language":"Elixir","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/edance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2017-10-28T00:27:29.000Z","updated_at":"2024-11-14T19:15:14.000Z","dependencies_parsed_at":"2023-12-14T04:31:51.973Z","dependency_job_id":"17659f08-54f2-41c1-8e24-d16cc67dca33","html_url":"https://github.com/edance/openpace","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/edance%2Fopenpace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edance%2Fopenpace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edance%2Fopenpace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edance%2Fopenpace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edance","download_url":"https://codeload.github.com/edance/openpace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225273293,"owners_count":17448080,"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":["elixir","phoenix","runner","running"],"created_at":"2024-08-04T01:01:55.212Z","updated_at":"2024-11-19T00:31:14.750Z","avatar_url":"https://github.com/edance.png","language":"Elixir","funding_links":[],"categories":["Elixir"],"sub_categories":[],"readme":"\u003ch1\u003e\n  \u003ca href=\"https://www.openpace.co/\" target=\"_blank\"\u003e\n   \u003cimg src=\"https://github.com/edance/art/raw/master/squeeze/repo-banner.png\" alt=\"Openpace\" width=\"100%\"\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n[![Built with Spacemacs](https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg)](http://spacemacs.org)\n[![Build Status](https://github.com/edance/openpace/actions/workflows/ci.yml/badge.svg)](https://github.com/edance/openpace/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/edance/openpace/badge.svg?branch=main)](https://coveralls.io/github/edance/openpace?branch=main)\n[![license](https://img.shields.io/github/license/edance/openpace.svg)](https://github.com/edance/openpace/blob/main/LICENSE.md)\n\nOpenPace is an open-source, web application that helps runners run their fastest marathon built with [Phoenix LiveView](https://github.com/phoenixframework/phoenix_live_view). It features tools to hit new personal bests, analyze your training program, and take a deep dive into your race performance.\n\nFrom a developer standpoint, it features:\n\n  * Sync's all fitness data from [Strava](https://github.com/slashdotdash/strava) including activities, GPS, heart rate, pace information.\n\n  * Canvas charts provided by [Chart.js](https://chartjs.org) using [Phoenix LiveView hooks](https://hexdocs.pm/phoenix_live_view/js-interop.html#client-hooks-via-phx-hook)\n\n  * Maps using [Mapbox GL](https://mapbox.com)\n\n  * Payment processing with Stripe using the [Stripity Stripe](https://github.com/beam-community/stripity_stripe)\n\nI'm actively working on Openpace and can use any help I can get. Feel free to create an issue or open a pull request.\n\n![Dashboard](https://github.com/edance/openpace/raw/ml-playground/.github/imgs/dashboard.png)\n\n\n## Documentation\n\nDocumentation is hosted using ex_doc. And you can view the documentation [here](https://www.openpace.co/docs).\n\n\n## Development\n\nWe provide several methods for running Openpace, pick the one that best fits your use case.\n\n### Docker\n\nRunning Openpace using Docker is a great option for local usage in case you don't have Elixir installed.\n\n```shell\ngit clone https://github.com/edance/openpace.git\ncd openpace\n\n# Copy the example env to your own file and edit it\ncp .env.example .env\n\n# Running with the default configuration\ndocker compose up -d\n\n# Visit localhost:4000\nopen http://localhost:4000\n```\n\n### Direct installation with Elixir\n\nYou'll need to install Elixir v1.13 or later. I recommend installing using [asdf](https://github.com/asdf-vm/asdf) with `asdf install elixir`.\n\n```shell\ngit clone https://github.com/edance/openpace.git\ncd openpace\n\n# Copy the example env to your own file and edit it\ncp .env.example .env\n\n# Use this command to export the variables into your system\nexport $(cat .env | grep -v ^# | xargs)\n\n# Get dependencies, create and seed database, and install js deps\nmix setup\n\n# Start Phoenix Server\niex -S mix phx.server\n\n# Visit localhost:4000\nopen http://localhost:4000\n```\n\nYou will then be able to sign in with `a@b.co` and the password `password`.\n\n### Import Strava Activities\n\n#### Option 1 (detailed activities with trackpoints and laps)\n\n* Create an account with an email (or sign in with `a@b.co` and password `password`)\n* Visit `/dashboard/strava-bulk-upload` and follow the instructions on the page\n\nYou will be required to download your data from Strava and upload the zip file to this page.\nWhen completed, you'll have all of your activities as well as trackpoints and laps.\n\n#### Option 2 (summary activities without trackpoints and laps)\n\nAdd the environment variables below and sign in with Strava.\n\nWhen fetching many activities from Strava, you will receive a list `SummaryActivity` which does not contain trackpoints or laps.\n\n### Environment Variables\n\nTo run locally, you'll need to set up a [strava api account](https://www.strava.com/settings/api). And set the following environment variables.\n\n  * STRAVA_CLIENT_ID\n\n  * STRAVA_CLIENT_SECRET\n\n  * STRAVA_WEBHOOK_TOKEN\n\nThere are additional environment variables in `.env.example`.\n\n### Feedback\n\nPlease create a github issue with any ideas, feedback, or suggestions, etc. Pull requests are welcome.\n\n## Why is it named squeeze?\n\nThe project was originally under the domain [squeeze.run](https://squeeze.run) with the goal of taking all your running data and \"squeezing\" it into summaries and graphs.\n\n## Deployment on Fly\n\nThis project is run on fly.io. You can run your own with `fly deploy`.\n\nFly deploy does not include `mix` so one-off tasks have to be run using a command like:\n\n```shell\nfly ssh console -C  \"/app/bin/squeeze eval Squeeze.TaskModule.method\"\n```\n\nSee `Squeeze.Release.migrate` for an example.\n\nYou can also open remote iex with:\n\n```shell\nfly ssh console -C  \"/app/bin/squeeze remote\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedance%2Fopenpace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedance%2Fopenpace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedance%2Fopenpace/lists"}