The source code to the civic tech project Öppna Skolplattformen.
Go to file
Kajetan Kazimierczak 32fab502b3 bumpa embedded 2021-09-09 09:17:28 +02:00
.github added stale config 2021-05-11 11:22:42 +02:00
k8s prepare for new domain skolplattformen.org 2020-12-14 18:21:43 +01:00
packages bumpa embedded 2021-09-09 09:17:28 +02:00
.gitignore ignore user settings 2020-12-20 14:02:31 +01:00
.nvmrc chore: update root dependencies (#274) 2021-04-15 17:06:03 +02:00
.releaserc chore: automatiskt changelog via semantic-release (#170) 2021-02-21 15:51:04 +01:00
CHANGELOG.md chore(release): 1.36.4 [skip ci] 2021-05-29 00:27:12 +02:00
LICENSE Create LICENSE 2021-02-11 22:55:48 +01:00
README.md Update README.md (#368) 2021-05-06 15:37:47 +02:00
bitrise.yml Bitrise 2021-04-26 10:56:07 +02:00
lerna.json fix: 🐛 Removed lerna workspaces 2021-02-08 19:26:22 +01:00
package-lock.json chore(release): 1.36.4 [skip ci] 2021-05-29 00:27:12 +02:00
package.json chore(release): 1.36.4 [skip ci] 2021-05-29 00:27:12 +02:00
skaffold.yaml prepare for new domain skolplattformen.org 2020-12-14 18:21:43 +01:00
yarn.lock fix: 🐛 Localised names of days 2021-04-28 10:41:52 +02:00

README.md

Öppna skolplattformen

License Patreon Vercel Translation status

We 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. Give us a if you like what we're doing!

If you're simply looking for information about the app, our website can be found at https://skolplattformen.org/. Check out the changelog to see what new features we've added and what bugs we've squashed.

This is the project's main repository. It contains the source code for both the app and its website. The sources for each can be found under packages/app and packages/site. The readme files there contain more detailed descriptions.

Login screen Child list screen

Contents

Architecture

The project consists of two main parts: the app and the embedded API.

App

The central part of the project is the app itself. It's written in TypeScript using React Native and React Native Kitten.

Our main goal with the app is to make it as fast and easy to use as possible. We're starting small, with more features being added over time.

For more information, check out the source code.

Embedded API

We decided to encapsulate our API implementation into a separate npm package. By not having to worry about the complex nature of the official API, the app becomes light-weight. It also makes it easier for others to develop their own applications for the Skolplattformen API.

The embedded API has its own project page at https://github.com/kolplattformen/embedded-api. To make it easier to use the embedded API in the app, we also created a set of React hooks that are available at https://github.com/kolplattformen/api-hooks.

Pro tip: If you don't want the API to make requests to the backend, you can enable fake mode to return static data instead. To enable fake mode, log in using the personal identity numbers 12121212121212 or 1212121212.

Development

To clone and build the project, you first need to install the required dependencies:

$ sudo apt install git npm
$ npx lerna bootstrap

Clone the repo with

$ git clone https://github.com/kolplattformen/skolplattformen.git

The readme files for the app and website contain further instructions.

Contributions

We want this project to become a citizen movement. If you find something you think needs to be fixed, we encourage you to fix the problem yourself and test it out on your machine first. When you're done, create a pull request where you explain why we should incorporate your fix into the project. If you're new to Github, there's a number of excellent guides available, such as this one on forking projects and making pull requests.

There are many ways to contribute to the project and we understand that not everyone is a programmer. If you don't know how to program and still want to help, you can also file an issue to let us know when something isn't working properly. We're super duper happy for both issues and pull requests and we try to answer all of them as soon as humanly possible.

Another way to contribute is by helping translate Öppna skolplattformen into a new language or improve on the existing translations. Check us out on Weblate if this sounds like something you're interested in.

We believe that by working together, we can leverage each other's skills and experiences to improve the project, and ultimately create the best possible experience.

Money

Even if we definitely stand by our claim that Open Source doesn't mean free, we have now, in fact, made the app free on both App Store and Google Play store. We decided to try a different model of making money to reimburse all our contributors, both coders and other, through voluntary donations on Patreon. Please support us at https://patreon.com/oppnaskolplattformen ❤️

We're an open source project and we still charge money for our app. Isn't this a contradiction? No. Open doesn't mean free. We want to continue to maintain this project in a sustainable way, which means that someone needs to pay for the köttbullar for the kids. Our goal is to be able to reimburse all contributions to the project. Of course, you are always welcome to build the app from the source code and do what you want with it!

Disclaimer

This initiative was started by frustrated parents without any affiliation with the City of Stockholm. We just want to find and read our newsletters a little bit easier and register sick-leave a little more conveniently.

If you're offended by this initiative, please don't be — we come in peace.

Contributors

License

Öppna skolplattformen is copyright 2020-2021 Not Free Beer handelsbolag.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use Öppna skolplattformen except in compliance with the License. A copy of the License is included with this repository.

Unless 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 for the specific language governing permissions and limitations under the License.