{"id":25856404,"url":"https://github.com/foobarsgamessmithy/chess-manager","last_synced_at":"2026-04-10T07:02:11.498Z","repository":{"id":273256241,"uuid":"919068817","full_name":"foobarsgamessmithy/chess-manager","owner":"foobarsgamessmithy","description":"A small spring boot application which can manage chess games for demonstration purposes.","archived":false,"fork":false,"pushed_at":"2025-02-27T13:28:30.000Z","size":161,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-02-27T14:23:22.769Z","etag":null,"topics":["bruno-collection","docker-compose","gradle","keycloak","liquibase","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","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/foobarsgamessmithy.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":"2025-01-19T16:22:39.000Z","updated_at":"2025-02-27T13:30:35.000Z","dependencies_parsed_at":"2025-01-19T20:25:49.661Z","dependency_job_id":"4606ea96-edd7-4be6-8ed3-5eca25afa21f","html_url":"https://github.com/foobarsgamessmithy/chess-manager","commit_stats":null,"previous_names":["foobarsgamessmithy/chess-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foobarsgamessmithy%2Fchess-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foobarsgamessmithy%2Fchess-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foobarsgamessmithy%2Fchess-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foobarsgamessmithy%2Fchess-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foobarsgamessmithy","download_url":"https://codeload.github.com/foobarsgamessmithy/chess-manager/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241404450,"owners_count":19957658,"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":["bruno-collection","docker-compose","gradle","keycloak","liquibase","spring-boot"],"created_at":"2025-03-01T18:17:58.421Z","updated_at":"2025-12-31T01:06:17.251Z","avatar_url":"https://github.com/foobarsgamessmithy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A chess manager\n\nA small spring boot application which can manage chess games for demonstration purposes.\n\n## Usage\n\nA collection of request to interact with the application is in the [docs](./doc/bruno/chess%20manager). Use [Bruno](https://www.usebruno.com/downloads) client to send requests. When application runs with authentication, use the auth request first. All other request will use the auth token form the auth request.\n\n### Authentication request\n\nWhen the application is started with authentication enabled, you first have to authenticate at the keycloak server. Therefore, you obtain a jwt token which is used in all other requests. The configuration of this request can be found withing the [bruno file](./doc/bruno/chess%20manager/keycloak/Auth.bru). Change username and password to use other test users. Client id and client secret are defined in the [realm](./infrastucture/keycloak/realm-export.json).\n\n## Development\n\n### Available Profiles\n\n- test: Profile is used for unit test execution\n- dev: Enable authentication but also h2 console is available\n- insecure: Disables authentication\n\n### Keycloak \n\nTo use keycloak you can use the [local](https://www.keycloak.org/downloads) installation or the docker image which is configured in the [docker-compose](./infrastucture/docker/docker-compose.yml) file.\n\nThe realm configuration must be imported via [realm.json](./infrastucture/keycloak/realm-export.json). Test users are also included in the end of the file. Also, the client secrets are set in the file. Of course this secrets should not be used for production. \n\nThe connection from keycloak to the chessmanager app is done with oauth2 like in is this [example](https://www.baeldung.com/spring-boot-keycloak).\n\n\n#### Roles\nRoles are not used in application now.\n\n| role    | description |\n|---------|-------------|\n| user    |             |\n| manager |             |\n\n\n#### Test user\n\nThis test user are predefined.\n\n| User name | password | role    |\n|-----------|----------|---------|\n| foobar    | foobar         | manager |\n| drdrunkenstein    | drdrunkenstein         | user    |\n\n\n### DB Access\n\nWhen application is running with dev profile the database is accessible via [browser](http://localhost:8081/h2). Credentials can be taken from `spring.datasource` in the [application.properties](./src/main/resources/application.properties)\n\n### Logging \n\nFor logging [slf4j](https://www.slf4j.org/manual.html) ist used. The logger can be declared as a static import by the logger factory like this:\n\n`\nprivate static final Logger LOG = LoggerFactory.getLogger(Foo.class);\n`\n\nTo log information there are different methods for every log level. It is possible to use placeholder to write the content of objects into the log. \n\n`\nLOG.debug(\"Logging the output of my variable: {}.\", variable);\n`\n\nFor the output medium a [logback.xml](./src/main/resources/log/logback.xml) is configured. There is an appender for console when the app is started in development mode and there is an appender for logging into a file in production mode.\n\nThe path to the logback.xml is set in the application.properties like this:\n\n`\nlogging.config=classpath:/log/logback.xml\n`\n\nAlso, a [banner.txt](./src/main/resources/log/banner.txt) is configured in the application.properties like this:\n\n`\nspring.banner.location=classpath:/log/banner.txt\n`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoobarsgamessmithy%2Fchess-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoobarsgamessmithy%2Fchess-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoobarsgamessmithy%2Fchess-manager/lists"}