Update readme files.

This commit is contained in:
Marcus Dansarie 2021-04-18 21:31:22 +02:00
parent bf92550b86
commit 81b2c3f022
No known key found for this signature in database
GPG Key ID: C108000EC3E121E6
3 changed files with 74 additions and 58 deletions

View File

@ -1,71 +1,80 @@
# Skolplattformen.org
# Öppna skolplattformen
[Öppna skolplattformen](https://skolplattformen.org/) is an attempt at reverse-engineering Skolplattformen to create a faster, more consistent, and secure experience.
![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=skolplattformen)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
![Login screen](packages/site/assets/img/screenshots/screenshot_login.png)
There's a lot of things to keep track of, no matter how many kids you have. 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/](https://skolplattformen.org/). Check out [the changelog](CHANGELOG.md) 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/site](packages/site) and [packages/app](packages/app). The readme files there contain more detailed descriptions.
![Login screen](packages/site/assets/img/screenshots/screenshot_login.png) ![Child list screen](packages/site/assets/img/screenshots/screenshot_children.png)
## Contents
* [Architecture](#architecture)
* [App](#app)
* [Embedded API](#embedded-api)
* [Development](#development)
* [Contributions](#contributions)
* [Money](#money)
* [Disclaimer](#disclaimer)
* [Contributors](#contributors)
* [License](#license)
## Architecture
The project consists of two main parts: the _app_ and the _embedded API_.
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](https://typescriptlang.org) using [React Native](https://reactnative.dev/) and [React Native Kitten](https://akveo.github.io/react-native-ui-kitten/).
The central part of the project is the app itself. It's 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/).
Our 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.
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](packages/app).
**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 any of the following personal numbers:
- 12121212121212
- 1212121212
### Embedded API
We first tried to create a proxy for the API. That was a bad idea. Even if the proxy wouldn't save any information it would still have introduced extra complexity.
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.
Instead, we decided to encapsulate our API into its own npm package. By not having to worry about the complex nature of the official API, the app becomes light-weight.
The embedded API has its own project page at [https://github.com/kolplattformen/embedded-api](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](https://github.com/kolplattformen/api-hooks).
For more information on the embedded API, refer to the [project page](https://github.com/kolplattformen/embedded-api).
> **Note:** To make it easier to use the embedded API in the app, we also created a [set of React hooks](https://github.com/kolplattformen/api-hooks).
## Website
The official site for the project is [https://skolplattformen.org](https://skolplattformen.org).
The source code for the site is available under [packages/site](packages/site).
**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 build the project yourself, you first need to install the required dependencies:
To clone and build the project, you first need to install the required dependencies:
```bash
npx lerna bootstrap
$ sudo apt install git npm
$ npx lerna bootstrap
```
Once all the dependencies are installed, refer to the README in each package for further instructions.
Clone the repo with
```bash
$ git clone https://github.com/kolplattformen/skolplattformen.git
```
The readme files for the [app](packages/app) and [website](packages/site) 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.
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](https://guides.github.com/activities/forking/).
We believe that by working together, we can leverage each other's skills and experiences to improve the project, and ultimately create a better experience, faster.
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](https://github.com/kolplattformen/skolplattformen/issues/new) 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.
There are many ways to contribute to the project. If you don't know how to program and still want to help, you can also [file an issue](https://github.com/kolplattformen/skolplattformen/issues/new) to let us know if 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.
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
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.
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 with no affiliation with Stockholm Stad. We just want to find and read our newsletters a little bit easier, and register sick-leave a little more conveniently.
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.
If you're offended by this initiative, please don't be we come in peace.
## Contributors
@ -79,4 +88,8 @@ If you're offended by this initiative, please don't be—we come in peace.
## License
[Apache 2.0](LICENSE)
Öppna skolplattformen is copyright 2020-2021 Not Free Beer handelsbolag.
Licensed under the [Apache License, Version 2.0](LICENSE) (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](LICENSE) for the specific language governing permissions and limitations under the License.

View File

@ -1,26 +1,28 @@
# Öppna Skolplattformen App
This is the app for Öppna Skolplattformen
This is the app for Öppna skolplattformen.
## Get started
## Getting started
Have a look at the [overall readme](../../) for general instructions on getting started.
### Prerequisites
We use `yarn` as our package manager. To install it run `npm install -g yarn`.
We use `yarn` as our package manager. To install it, run `sudo npm install -g yarn`. All the commands described here should be run from the `packages/app` directory.
### iOS
To get started using the iOS simulator start by installing the JavaScript
dependencies using
```
```bash
$ yarn
```
Next you need to install the [Cocoapods](https://cocoapods.org/) dependencies
for the iOS project
```
```bash
$ cd ios
$ pod setup
$ pod install
@ -29,36 +31,29 @@ $ pod install
You should now be setup to run the app in the Simulator. Run the `ios` command
in the root of the app.
```
```bash
$ yarn ios
```
### Android
Android development requires that you have [Android Studio](https://developer.android.google.cn/studio?hl=en) and relevant build tools installed.
Android development requires that you have [Android Studio](https://developer.android.com/studio) and relevant build tools installed.
Start by installing JavaScript dependencies using
```
```bash
$ yarn
```
Before running the app you should start an emulator from Android Studio. Then
run the following command to start the build
```
```bash
$ yarn android
```
## Running tests
```
```bash
$ yarn test
```
## TODO
[x] Välj barn
[x] Login
[ ] Anmäl frånvaro
[ ] Settings

View File

@ -1,18 +1,26 @@
# Öppna Skolplattformen
# Öppna skolplattformen
This is the website for Öppna Skolplattformen. It's built using [Next.js](http://nextjs.org/).
This is the website for Öppna skolplattformen. It's built using [Next.js](http://nextjs.org/). Most of the site content can be found in the [components folder](components).
## Get started
## Getting started
```
Have a look at the [overall readme](../../) for general instructions on getting started.
Run the following commands from the `packages/site` directory.
```bash
$ yarn
$ yarn dev
```
Open your favorite browser to http://localhost:3000
Build a release version of the site with:
```bash
$ yarn build
```
## Running tests
```
```bash
$ yarn lint
$ yarn test
```