{"id":13672734,"url":"https://github.com/kolplattformen/skolplattformen","last_synced_at":"2025-04-28T03:32:59.279Z","repository":{"id":40647263,"uuid":"319440455","full_name":"kolplattformen/skolplattformen","owner":"kolplattformen","description":"The source code to the civic tech project Öppna Skolplattformen.","archived":false,"fork":false,"pushed_at":"2024-11-09T14:47:55.000Z","size":86029,"stargazers_count":799,"open_issues_count":48,"forks_count":177,"subscribers_count":24,"default_branch":"main","last_synced_at":"2024-11-09T15:29:06.548Z","etag":null,"topics":["app","civic-tech","react-native","school-education"],"latest_commit_sha":null,"homepage":"https://skolplattformen.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kolplattformen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"oppnaskolplattformen"}},"created_at":"2020-12-07T20:48:09.000Z","updated_at":"2024-11-09T14:47:58.000Z","dependencies_parsed_at":"2023-09-22T22:36:20.509Z","dependency_job_id":"ce9e20b8-175c-4839-813c-ca3449b80fe0","html_url":"https://github.com/kolplattformen/skolplattformen","commit_stats":{"total_commits":1538,"total_committers":73,"mean_commits":"21.068493150684933","dds":0.830299089726918,"last_synced_commit":"ab90b944aef714bd682ffa301c2ce3d1b235ec7a"},"previous_names":[],"tags_count":142,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolplattformen%2Fskolplattformen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolplattformen%2Fskolplattformen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolplattformen%2Fskolplattformen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolplattformen%2Fskolplattformen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kolplattformen","download_url":"https://codeload.github.com/kolplattformen/skolplattformen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251246394,"owners_count":21558762,"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":["app","civic-tech","react-native","school-education"],"created_at":"2024-08-02T09:01:45.836Z","updated_at":"2025-04-28T03:32:54.269Z","avatar_url":"https://github.com/kolplattformen.png","language":"TypeScript","funding_links":["https://patreon.com/oppnaskolplattformen","https://img.shields.io/badge/dynamic/json?color=%23e85b46\u0026label=Patreon\u0026query=data.attributes.patron_count\u0026suffix=%20patrons\u0026url=https://www.patreon.com/api/campaigns/6649731","https://www.patreon.com/oppnaskolplattformen"],"categories":["iOS Apps","TypeScript","Misc","📦 Legacy \u0026 Inactive Projects"],"sub_categories":["iOS Travel","React Native"],"readme":"Give us a ⭐ if you appreciate what we do!\n\n# Öppna skolplattformen\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Patreon](https://img.shields.io/badge/dynamic/json?color=%23e85b46\u0026label=Patreon\u0026query=data.attributes.patron_count\u0026suffix=%20patrons\u0026url=https://www.patreon.com/api/campaigns/6649731)](https://www.patreon.com/oppnaskolplattformen)\n![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=skolplattformen)\n[![Translation status](https://hosted.weblate.org/widgets/skolplattformen/-/svg-badge.svg)](https://hosted.weblate.org/engage/skolplattformen/)\n[![Build Status](https://app.bitrise.io/app/8e56bd02bc602da5/status.svg?token=h8gI2dB_jXLurj9EO_fXWw)](https://app.bitrise.io/app/8e56bd02bc602da5)\n\nWe are parents who got fed up with Skolplattformen, the City of Stockholm's school administration platform. \\ We reverse-engineered the platform's API to create a simpler, faster, more consistent, and secure experience for parents and guardians. If you're simply looking for information about the app, our website can be found at [https://skolplattformen.org/](https://skolplattformen.org/). \\\nCheck out [the changelog](CHANGELOG.md) to see what new features are added, and a list of fixed bugs.\n\nThis main repository for the project contains the source code for both the [app](apps/skolplattformen-app) and its [website](https://skolplattformen.org/). \\\nThe sources for each can be found under [apps](apps) and [libs](libs).\nThe respective README files there contain more detailed descriptions.\n\n\u003cimg src=\"apps/website/assets/img/screenshots/screenshot_login.png\" width=\"200\"\u003e \u003cimg src=\"apps/website/assets/img/screenshots/screenshot_children.png\" width=\"200\"\u003e\n\n## Contents\n\n* [Architecture](#architecture)\n  * [Apps](#apps)\n    * [skolplattformen](#skolplattformen)\n    * [website](#website)\n  * [Libs](#embedded-api)\n    * [api](#api)\n    * [api-skolplattformen](#api-skolplattformen)\n    * [api-hjarntorget](#api-hjarntorget)\n    * [api-vklass](#api-vklass)\n    * [curriculum](#curriculum)\n    * [hooks](#hooks)\n* [Getting started with development](#getting-started-with-development)\n    * [iOS](#ios)\n    * [Android](#android)\n    * [Website](#website)\n    * [Tests](#tests)\n* [Contributions](#contributions)\n* [Money](#money)\n* [Disclaimer](#disclaimer)\n* [Contributors](#contributors)\n* [License](#license)\n\n## Architecture\n\nThe project consists of several apps and libraries inside [a NX](https://nx.dev/) monorepo.\n\n### Apps\n/apps/ contains the application projects. This is the main entry point for a runnable application.\n\n#### skolplattformen\n\nThe central part of the project is the app itself. It is written in [TypeScript](https://www.typescriptlang.org/) using [React Native](https://reactnative.dev/) and [React Native Kitten](https://akveo.github.io/react-native-ui-kitten/).\n\nOur main goal with the app is to make it as fast and easy to use as possible. \\\n\nWe're starting small, with more features being added over time.\n\nFor more information, check out the [source code](apps/skolplattformen-app).\n\n#### website\n\nThe code for the website at https://skolplattformen.org/. It's built using Next.js.\n\nFor more information, check out the [source code](apps/website).\n### Libs\n\n/libs/ contains the library projects. There are many different kinds of libraries, and each library defines its own external API so that boundaries between libraries remain clear.\n\n#### api\n\nThe base for all api implementations\n\n#### api-hjarntorget\n\nThe implementation for the school platform in Gothenburg called Hjärntorget.\n\n#### api-vklass\n\nThe implementation for the school platform Vklass.\n\n#### api-skolplattformen\n\nBy not having to worry about the complex nature of the official API, the app becomes light-weight. \\\nIt also makes it easier for others to develop their own applications for the Skolplattformen API.\n\n**Pro tip:** If you don't want the API to make requests to the back-end, you can turn on _fake mode_ to return static data instead. \\\nDo so by logging in using 12121212121212 or 1212121212 as your personal identity number.\nCheck out the documentation [here](libs/api-skolplattformen).\n\n#### curriculum\n\nTranslations of curriculum codes (sv: ämneskoder på schemat) to clear text descriptions\n\n#### hooks\n\nTo make it easier to use the the api in the app, we also created a set of React hooks.\nCheck out the documentation [here](libs/hooks).\n\n## Getting started with Development\n\nTo clone and build the project, you first need to install [git](https://git-scm.com/), [node](https://nodejs.org/en/) and [yarn](https://classic.yarnpkg.com/lang/en/docs/install/).\n\nClone the repo with\n```bash\n$ git clone https://github.com/kolplattformen/skolplattformen.git\n```\n\nInstall dependencies\n```bash\ncd skolplattformen \u0026\u0026 yarn\n```\n\n### iOS\n\nIf you wanna run the iOS app, you need to setup a couple of things first, we have a guide that will assist you in getting started with the iOS app. A Mac is required to build projects with native code for iOS so we do not have support for Linux / Windows.\n\n* [Mac OS](/docs/ios_mac.md)\n\nIf you already setup everything, you just need to run the following command in the project root:\n\nStart the iOS app\n```\nyarn run ios\n```\n\n### Android\n\nIf you wanna run the Android app, you need to setup a couple of things first, we have created three different guides depending on your operating system.\n\n* [Mac OS](/docs/android_mac.md)\n* [Windows](/docs/android_windows.md)\n* [Linux](/docs/android_linux.md)\n\nIf you already setup everything, you just need to run the following command in the project root:\n\n```\nyarn run android\n```\n\n### Website\n\nDocumentation coming soon.\n\n### Tests\n\nRun all tests\n```\nyarn run test\n```\n\nRun a specific test\n```\nyarn run test:api-skolplattformen\n```\n\n## Contributions\n\nWe want this project to be a citizen movement. If you find something you think needs fixing, we encourage you to do so yourself, and test it out on your machine first. \\\nOnce done, create a _pull request_ where you explain why we should incorporate your fix into the project. \\\nIf you're new to GitHub, there's a number of excellent guides available, such as [this one on forking projects and making pull requests](https://guides.github.com/activities/forking/).\n\nThere are many ways to contribute to the project. \\\nIf you don't know how to program and want help, you can [file an issue](https://github.com/kolplattformen/skolplattformen/issues/new) to let us know when something isn't working properly. \\\nWe're super duper happy for both issues and pull requests, and we try to answer all of them as soon as humanly possible.\n\nAnother way to contribute is by helping translate Öppna skolplattformen [on Hosted Weblate](https://hosted.weblate.org/engage/skolplattformen-app/) into a new language, or to improve existing translations.\n\n_Working together leverages available skills and experience in improving the project, ultimately creating the best possible experience_.\n\n## Money\n\nEven if we definitely stand by our claim that libre software doesn't mean gratis, we have now offered it free of charge on both the Apple App Store and on Google Play. With this different model, you can extend your appreciation to all our contributors. Send some köttbullar for the kids through voluntary donations on [https://patreon.com/oppnaskolplattformen](https://patreon.com/oppnaskolplattformen) ❤️.\n\n## Disclaimer\n\nThis initiative was started by frustrated parents without any affiliation with the City of Stockholm. \\\nWe just want to find and read newsletters with greater ease, and register sick-leave in a convenient manner.\n\nIf you're offended by this initiative, rest assured there is no reason to be — we come in peace.\n\n## Contributors\n\n- [Christian Landgren](https://github.com/irony)\n- [Johan Öbrink](https://github.com/JohanObrink)\n- [Erik Hellman](https://github.com/ErikHellman)\n- [Viktor Sarström](https://github.com/viktorlarsson)\n- [Andreas Eriksson](https://github.com/whyer)\n- [Kajetan Kazimierczak](https://github.com/kajetan-kazimierczak)\n- [Karin Nygårds (artwork)](https://github.com/grishund)\n- [Jonathan Edenström](https://github.com/edenstrom)\n- [Emil Hellman](https://github.com/archevel)\n- You?\n\n## License\n\nÖppna skolplattformen is copyright 2020–2024 Not Free Beer AB.\n\nLicensed under the [Apache License, Version 2.0](LICENSE) (the \"License\"); you may use Öppna skolplattformen in compliance with the License. A copy of the License is included with this repository.\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the [License](LICENSE) for the specific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkolplattformen%2Fskolplattformen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkolplattformen%2Fskolplattformen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkolplattformen%2Fskolplattformen/lists"}