{"id":18634514,"url":"https://github.com/dotwee/grips","last_synced_at":"2026-01-25T17:33:45.386Z","repository":{"id":92274463,"uuid":"256981865","full_name":"dotWee/GRIPS","owner":"dotWee","description":"A Kotlin-implementation of the G.R.I.P.S-Website by OTH Regensburg and University of Regensburg","archived":false,"fork":false,"pushed_at":"2019-06-11T13:11:20.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-25T06:56:41.732Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"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/dotWee.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":"2020-04-19T11:27:24.000Z","updated_at":"2021-09-18T11:07:29.000Z","dependencies_parsed_at":"2023-06-08T06:15:36.401Z","dependency_job_id":null,"html_url":"https://github.com/dotWee/GRIPS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dotWee/GRIPS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2FGRIPS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2FGRIPS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2FGRIPS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2FGRIPS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotWee","download_url":"https://codeload.github.com/dotWee/GRIPS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2FGRIPS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28755951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T16:32:25.380Z","status":"ssl_error","status_checked_at":"2026-01-25T16:32:09.189Z","response_time":113,"last_error":"SSL_read: 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-07T05:19:11.802Z","updated_at":"2026-01-25T17:33:45.359Z","avatar_url":"https://github.com/dotWee.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# G.R.I.P.S API implementation\nThe goal of the project is to create a concise implementation of the [G.R.I.P.S](https://elearning.uni-regensburg.de)-API.\n\n## Getting Started\nUsage is simple. After importing the library, the Client can be created by calling `GripsClient(loginData: LoginData)` and then invoking `login()`\n\n```\nvar loginData = LoginData(Realm.HS, \"login\", \"password\")\nvar client = GripsClient(loginData)\nclient.login() \n```\n\nAfterwards, the client-object can be used until the session is expired.\n\n## Usage\n\n![uml](http://www.plantuml.com/plantuml/png/VP1D2i8m48NtEKMM_b0F44IgNOZWJYyGqg4EJISbCnL4lBknBRLkt6M-lFVc9JcBZT8rNZblcNKHkiZmL6kDfT4dadGYsu3H5ub8LHhT3LmDwVOGWWTBwgL6ypMqwFvwIs0NiHKCDAFM2TvH4DZeCx9iznFOVTD7-FXTu97gAIffXmVeLPODTOm-feLSU0IIJGNIquNhPKlLJn_r56zcTLGELARFUGC0)\n\nThe Data-Layer follows an hierarchical approach. The Courses can be requested by ``GripsClient.getCourses()``. Courses consist of 0 to n topic. For performance/bandwith reasons, the topics are not downloaded automatically. To get all topics of a course, ``GripsClient.getTopics(course: Course)`` can be invoked.\nA topic can have 0 to n activities. Activities are for now just files.\n\nExample: To get a list of all activities available to an account, we need to ``flatMap()`` twice. First, for flatmapping courses to topics. Seconds, to get all activities for each topic. This would, in the end, look like this:\n```\n    client.getCourses().stream()\n            .flatMap { client.getTopics(it).stream() }\n            .flatMap { it.activities.stream() }\n            .collect(Collectors.toList())\n```\n\n## Used Libraries\n- [jsoup](https://jsoup.org/) - MIT License\n\n## Disclaimer\nThis project is in no way affiliated with [OTH Regensburg](https://oth-regensburg.de) and/or  [Universität Regensburg](http://www.uni-regensburg.de/). The code is only accessing information, that is already publicly available at [G.R.I.P.S](https://elearning.uni-regensburg.de) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotwee%2Fgrips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotwee%2Fgrips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotwee%2Fgrips/lists"}