{"id":23428686,"url":"https://github.com/marknjunge/globalgym-api-ktor","last_synced_at":"2025-04-09T13:19:49.913Z","repository":{"id":96503017,"uuid":"170981044","full_name":"MarkNjunge/GlobalGym-api-ktor","owner":"MarkNjunge","description":"A rewrite of GlobalGym's api using Ktor","archived":false,"fork":false,"pushed_at":"2019-09-24T09:35:11.000Z","size":97,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-15T07:29:05.983Z","etag":null,"topics":["backend","kotlin","kotlin-backend","ktor","vuepress"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkNjunge.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-02-16T08:33:37.000Z","updated_at":"2020-02-26T20:48:13.000Z","dependencies_parsed_at":"2023-04-04T08:30:43.694Z","dependency_job_id":null,"html_url":"https://github.com/MarkNjunge/GlobalGym-api-ktor","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/MarkNjunge%2FGlobalGym-api-ktor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkNjunge%2FGlobalGym-api-ktor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkNjunge%2FGlobalGym-api-ktor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkNjunge%2FGlobalGym-api-ktor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkNjunge","download_url":"https://codeload.github.com/MarkNjunge/GlobalGym-api-ktor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248045265,"owners_count":21038557,"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":["backend","kotlin","kotlin-backend","ktor","vuepress"],"created_at":"2024-12-23T07:14:28.457Z","updated_at":"2025-04-09T13:19:49.907Z","avatar_url":"https://github.com/MarkNjunge.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# GlobalGym API\nA rewrite of [GlobalGym](https://github.com/MarkNjunge/GlobalGym-Android)'s api using [Ktor](https://ktor.io).\n\n## Built with\n\n[Ktor](https://ktor.io/) - Web framework\n\n[Jdbi](https://github.com/jdbi/jdbi) - Database access\n\n[VuePress](https://vuepress.vuejs.org/) - Routes documentation\n\n\n## Installation\nCreate a [PostgreSQL](https://www.postgresql.org/) database.\n\nClone the repository\n```\ngit clone git@github.com:MarkNjunge/GlobalGym-api-ktor.git\n```\n\nCreate an `application.conf` in resources based on `resources/application.conf.sample`.\n```\ncp resources/application.conf.sample resources/application.conf\n```\n[Optional] Build the routes documentation.  Requires [VuePress](https://vuepress.vuejs.org/) to be installed.\n```\nvuepress build resources\\docs\n```\nRun the main function in `Application.kt` in an IDE, or run the command below in a cli\n```\ngradlew run\n```\n\n## Configuration\n\nThe _application.conf_ file is the main way of setting configs. Environment variables can also be used and will take\npriority over the config file.\n\n| ENV variable      | .conf mapping               |\n| ----------------- | --------------------------- |\n| PORT              | ktor.deployment.port        |\n| DATABASE_URL      | database.url                |\n| DATABASE_USERNAME | database.username           |\n| DATABASE_PASSWORD | database.password           |\n| AUTH_KEY          | other.authKey               |\n\n## Building\n### Jar\nBuild the routes documentation.  Requires [VuePress](https://vuepress.vuejs.org/) to be installed.\n```\nvuepress build resources\\docs\n```\nBuild the jar\n```Bash\ngradlew shadowJar\n```\nYou can then run the jar using\n```Bash\njava -jar build\\libs\\globalgym-api.jar\n```\n### Docker\n\nUse the instructions above to first build the jar\n\nBuild a docker image\n```Bash\ndocker build -t globalgym-api .\n```\nRun the image\n```Bash\ndocker run -it -p 3000:3000 --rm globalgym-api\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarknjunge%2Fglobalgym-api-ktor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarknjunge%2Fglobalgym-api-ktor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarknjunge%2Fglobalgym-api-ktor/lists"}