{"id":21242202,"url":"https://github.com/bitspittle/nosweat","last_synced_at":"2026-04-14T17:31:47.486Z","repository":{"id":132173888,"uuid":"365644055","full_name":"bitspittle/nosweat","owner":"bitspittle","description":"A web app exercise tracker","archived":false,"fork":false,"pushed_at":"2025-08-05T19:03:06.000Z","size":159,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T10:30:00.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","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/bitspittle.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-09T01:30:40.000Z","updated_at":"2021-05-29T04:54:09.000Z","dependencies_parsed_at":"2025-12-31T02:03:26.400Z","dependency_job_id":null,"html_url":"https://github.com/bitspittle/nosweat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bitspittle/nosweat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Fnosweat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Fnosweat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Fnosweat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Fnosweat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitspittle","download_url":"https://codeload.github.com/bitspittle/nosweat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Fnosweat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31808505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"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":[],"created_at":"2024-11-21T00:58:41.871Z","updated_at":"2026-04-14T17:31:47.479Z","avatar_url":"https://github.com/bitspittle.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# No Sweat - An Exercise Tracker\n\nThis project is a web app that allows creating exercises and workaround routines, as well as running exercises and\ntracking your accomplishments.\n\nThis project includes both the frontend (web UI for user interactions) and the backend (which maintains the state of the\napplication for all users).\n\n## Build steps\n\n```shell\n$ git clone https://github.com/bitspittle/nosweat\n$ cd nosweat\n```\n\n### Submodule Dependencies\n\n(You only need to do the steps in this section once)\n\nFetch submodule dependencies:\n\n```shell\n$ cd external\n$ git submodule init\n$ git submodule update\n```\n\n### Redis\n\nThe server uses Redis as a data store. You will need to download, install, and run a redis server before starting up the\nbackend.\n\nSee also: https://redis.io/topics/quickstart\n\nExcerpt:\n```shell\nwget http://download.redis.io/redis-stable.tar.gz\ntar xvzf redis-stable.tar.gz\ncd redis-stable\nmake\n```\n\nthen:\n\n```shell\ncd src/\n./redis-server\n```\n\n### Run Server and Client\n\nThen, navigate back to the root folder. At this point, you should be start up the server:\n\n```shell\n$ pwd\n.../path/to/nosweat\n$ ./gradlew :backend:run\n```\n  \nThen, start up the browser to run the app:\n\n```shell\n$ ./gradlew :frontend:jsBrowserRun\n```\n\n## Technology\n\nThis project uses:\n\n* [Web Compose](https://compose-web.ui.pages.jetbrains.team/) for the frontend\n* [Ktor](https://ktor.io/) for the backend server\n* [Redis](https://redis.io/) for the backend database\n* [GraphQL](https://graphql.org/) for the protocol to communicate between frontend and backend\n\n## Troubleshooting\n\n---\n\nQ: When I run the backend, it immediately exits with `JedisConnectionException: Could not get a resource from the pool`\n\nA: You need to run `redis-server` first. See the [Redis](#Redis) section. \n\n---\n\nQ: ?\n\nA: ?","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitspittle%2Fnosweat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitspittle%2Fnosweat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitspittle%2Fnosweat/lists"}