The source code to the civic tech project Öppna Skolplattformen.

Overview

Give us a if you appreciate what we do!

Öppna skolplattformen

License Patreon Vercel Translation status Build 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. P 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 are added, and a list of fixed bugs.

This main repository for the project contains the source code for both the app and its website.
The sources for each can be found under apps and libs. The respective README files there contain more detailed descriptions.

Contents

Architecture

The project consists of several apps and libraries inside a NX monorepo.

Apps

/apps/ contains the application projects. This is the main entry point for a runnable application.

skolplattformen

The central part of the project is the app itself. It is 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.

website

The code for the website at https://skolplattformen.org/. It's built using Next.js.

For more information, check out the source code.

Libs

/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.

api

The base for all api implementations

api-hjarntorget

The implementation for the school platform in Gothenburg called Hjärntorget.

api-vklass

The implementation for the school platform Vklass.

api-skolplattformen

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.

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.
Do so by logging in using 12121212121212 or 1212121212 as your personal identity number. Check out the documentation here.

curriculum

Translations of curriculum codes (sv: ämneskoder på schemat) to clear text descriptions

hooks

To make it easier to use the the api in the app, we also created a set of React hooks. Check out the documentation here.

Getting started with Development

To clone and build the project, you first need to install git, node and yarn.

Clone the repo with

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

Install dependencies

cd skolplattformen && yarn

iOS

If 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.

If you already setup everything, you just need to run the following command in the project root:

Start the iOS app

yarn run ios

Android

If 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.

If you already setup everything, you just need to run the following command in the project root:

yarn run android

Website

Documentation coming soon.

Tests

Run all tests

yarn run test

Run a specific test

yarn run test:api-skolplattformen

Contributions

We 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.
Once 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.
If you don't know how to program and want help, you can 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 on Hosted Weblate into a new language, or to improve existing translations.

Working together leverages available skills and experience in improving the project, ultimately creating the best possible experience.

Money

Even 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 ❤️ .

Disclaimer

This initiative was started by frustrated parents without any affiliation with the City of Stockholm.
We just want to find and read newsletters with greater ease, and register sick-leave in a convenient manner.

If you're offended by this initiative, rest assured there is no reason to be — we come in peace.

Contributors

License

Öppna skolplattformen is copyright 2020–2021 Not Free Beer AB.

Licensed under the Apache License, Version 2.0 (the "License"); you may use Öppna skolplattformen 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.

Comments
  • Kraschar när jag trycker på barnets namn

    Kraschar när jag trycker på barnets namn

    Hej - jag har två barn i samma skola. När jag trycker på det yngre barnets information funkar det ok, då kommer jag till nyheter m.m. - men för det äldre barnet så dör appen direkt utan något meddelande. I oöppna skolplattformen funkar det utan problem (eller webbgränssnittet).

    Appen är 2.0.3 (20298) Telefonen är en OnePlus 7T med Android 11 (security update 2021-10-01)

    Bidrar gärna med mer information, men är inte säker på hur man kan få ut det!

    bugg 
    opened by fraxen 20
  • feat: 🎸 Dark mode

    feat: 🎸 Dark mode

    Implementation of dark mode using UI Kitten theme and react-native-appearance.

    Right now using the system theme as default, future settings screen should implement appearance toggle to override system default.

    Could still be some issues with theming, some things had to be restructured.

    Some screenshots of dark mode

    sc1 sc2 sc3 sc4
    opened by axdra 13
  • Annat barns nyheter

    Annat barns nyheter

    Jag har 2 ungar på samma förskola men i olika grupper. Får upp äldre ungens ”nyheter” även på yngsta trots att det ska vara olika. På Skolplattformen får jag upp rätt just idag men jag är ganska säker på att jag haft samma problem där.

    bugg 
    opened by piaullstrom 11
  • Förbättra nyhetsvyn

    Förbättra nyhetsvyn

    Nyhetsvyn skulle behöva sig en titt. Vår lärare använder en tabell och lite annan "html" för nyhetsbreven. Den är inte särskilt användbar för mig i den här appen. Bifogar bilder från "vanliga" appen och denna app. 2021-04-16_09-18-31

    Tack för bra arbete!

    stale 
    opened by henebb 7
  • Möjlighet att översätta gränssnittet

    Möjlighet att översätta gränssnittet

    En möjlig förbättring som säkert skulle få vissa "communities" att förespråka ÖS: gör det möjligt att översätta gränssnittet till engelska och eventuellt också arabiska.

    Ett första steg är att bara göra översättning möjlig – sen kan det säkert hoppa på några språkentusiaster på tåget som gärna bidrar med själva översättningarna. Just att översätta är för övrigt en bra inkörsport till att bidra till open source-projekt eftersom alla kan göra det.

    opened by zhouhana 7
  • Kom ihåg personnummer

    Kom ihåg personnummer

    Det skulle vara skönt att inte behöva skriva in sitt personnummer varje gång man öppnar appen. Kan man lagra det lokalt? Kanske en "Kom ihåg mig"-switch för säkerhets skull?

    bugg 
    opened by andlju 7
  • chore(build): fix github actions

    chore(build): fix github actions

    This PR should fixes the lerna bootstrap step in GitHub actions. The problem was that app was using yarn while the other packages are using npm. This PR makes it consistent by using yarn for all packages. I've also added .nvmrc's to app and API.

    The default test in app was removed because it wasn't really being "used". I also fixed the test in site that was broken in #41.

    opened by believer 7
  • Kalenderhändelser croppas (Android)

    Kalenderhändelser croppas (Android)

    Kalenderhändelser med långa namn eller beskrivningar ryms inte i vyn på Android. Önskemål: Antingen göra kalendervyn större (och scrollande) när det behövs, eller göra det möjligt att expandera en händelse genom att klicka på den

    image

    bugg 
    opened by rotsee 6
  • Byt ikon på jordgloben (för byt språk). Och lägg språkinställningar i Settings.

    Byt ikon på jordgloben (för byt språk). Och lägg språkinställningar i Settings.

    Hitta en bättre ikon men lägg gärna språkväljare även i inloggat läge. Samt i Settings.

    Från Tom Airaksinen:

    Såg också att appen var på engelska men kunde inte hitta något sätt vare sig i appen själv eller i iPhonens Settings.app > Skolplattformen för att byta till svenska. (Kör engelska i operativsystemet av lite olika skäl men vill gärna ha appen på svenska.)

    stale 
    opened by irony 6
  • Använd en pull-down menu istället för ActionSheet på iOS 14+

    Använd en pull-down menu istället för ActionSheet på iOS 14+

    Hej,

    För lite finare upplevelse för t.ex. funktionerna "Välj inloggningsmetod" och kugghjulet för logga ut, skulle vi kunna använda en Pull-down menu istället för ett ActionSheet.

    Citerat från actionsheet-dokumentationen:

    Use an action sheet to request confirmation before performing a potentially destructive operation. To give people a choice of items or actions that are related to a nondestructive task, you can use a pull-down menu.

    Support är endast iOS 14+, men vi får lägga till en fallback till ActionSheet via Platform.

    Modulen react-native-ios-context-menu går att använda. Har tidigare använt den i ett annat app-projekt.

    Har inga barn i Stockholm, men öppen att jobba på en PR om idén låter bra.

    Screenshots: CleanShot 2021-04-21 at 21 36 50@2x ActionSheet

    CleanShot 2021-04-21 at 21 36 42@2x Pull-down menu stale 
    opened by edenstrom 6
  • Bilderna i nyhetslistan

    Bilderna i nyhetslistan

    Det verkar svårt att få till bilderna i nyhetslistan. Antingen är de för stora eller så tränger de in rubrikerna så att de måste löpa över fyra, fem rader.

    image

    Kanske vi inte behöver bilder alls i nyhetsflödet, utan bara inne på själva nyheterna?

    Annars är ett alternativ att lägga bilden som bakgrund under rubriken med skuggning under texten för ökad kontrast. Se exempel från MSN.com. Då kan man både ha bilder och långa rader utan att det påverkar nyhetslistans längd så mycket.

    image

    opened by zhouhana 6
  • Tillgänghet: Förkorta namn till initialer om det är för långt för att få plats

    Tillgänghet: Förkorta namn till initialer om det är för långt för att få plats

    Barnets namn högst upp är onödigt litet. Om det kan vara svårt att få plats med hela namnet kanske ikonen med barnets första två bokstäver (som används vid barnöversikten) kan användas? Se dock även önskemålet Byta barn genom att klicka på namnet https://github.com/kolplattformen/skolplattformen/issues/452 . (av @webberian )

    tillgänglighet 
    opened by irony 0
  • Kopiera alla mailadresser till klassen eller mailikon för att skapa nytt mail till alla

    Kopiera alla mailadresser till klassen eller mailikon för att skapa nytt mail till alla

    Önskemål från Nils via [email protected]:

    En funktion jag gärna skulle vilja se är en knapp för att maila alla vårdnadshavare/kopiera alla mailadresser för mitt barns klass. Motsvarande finns i Infomentor och är användbart, medan med skolplattformen uppfattar jag att det är lätt att missa någon förälder när distributionslistan ska klippas ihop varje gång någon ska skicka ett mail.

    förbättring 
    opened by irony 0
  • Utökad matchning av lärarnas namn i schemat

    Utökad matchning av lärarnas namn i schemat

    Finns: Vi hämtar lärarnas namn och kontaktinformation från kontaktlistan. Vi matchar sen förkortningen som finns i schemat till lärarnas namn för att visa lärarens fulla namn i schemat. Vi upptäckte att initialerna i schemat oftast är första bokstaven från lärarens förnamn och två första från efternamnet, så t.ex. lärare Anna Bengtsson kommer heta ABE i schemat. Den matchningen finns nu och fungerar så att när vi läser upp lärarlistan så skapar vi initialer för schemat som sen matchas när schemat visas.

    Problem: Vi upptäckte nyligen en skola där initialerna i schemat är två bokstäver från lärarens förnamn och en från efternamnet. Så läraren Anna Bengtsson förkortas som ANB (och inte ABE som i de flesta andra scheman vi sett). Det kan även finnas andra sätt att förkorta lärarnas namn än de vi sett hittills.

    Önskad lösning: Lägg till andra sätt att matcha lärarnas initialer. Minst det sättet som som vi hittade ovan men helst så att man enkelt kan lägga till nya sätt när dessa hittas. Förslagsvis en lista med sätt att förkorta som räknas fram när lärarlistan läses in och sen någonstans ett försök att hitta vilket sätt som används för aktuellt schema/skola.

    förbättring 
    opened by kajetan-kazimierczak 0
  • Tillfällig ändring vistelsetid (förskola)

    Tillfällig ändring vistelsetid (förskola)

    Hej, Kan man få önska att tillfällig ändring av vistelsetiden finns i appen? Vår förskola har sagt att man inte längre får använda SMS för att meddela sen ankomst utan vi behöver lägga in det via skolplattformen istället. (barnet blir automatiskt sjukanmält om man är 15 min sen).

    Och vissa mornar blir ju tyvärr inte alltid som man tänkt sig när man har förskolebarn 😅

    tillfälligtid

    opened by perrra 0
  • Spara skolschema i Outlook-kalendern

    Spara skolschema i Outlook-kalendern

    Det vore väldigt praktiskt om det gick att spara barnens skolschema i kalendern i Outlook. Har en samsung-mobil, och där kan man inte ta vägen via mobilens egen kalender iom att det enligt samsung själva måste gås via google-kalendern och där kommer det endast gå att se vad som redan finns i Outlook-kalendern (dvs inte redigera, dvs in lägga in ett skolschema).

    Vad jag skulle vilja kunna göra är att i appen välja att spara schemat i kalender, och därefter välja vilken kalender-app på mobilen det ska sparas i (och då kunna välja Outlook, och sedan välja i vilken av de outlook-kalendrar jag har åtkomst att lägga till saker i schemat ska sparas.

    förbättring 
    opened by gustav120 1
Owner
Skolplattformen.org
Öppna Skolplattformen är en medborgarutvecklad applikation som gör det lättare för vårdnadshavare att använda Stockholms stads skolplattform.
Skolplattformen.org
SwiftTypeReader - You can gather type definitions from Swift source code.

SwiftTypeReader - You can gather type definitions from Swift source code.

omochimetaru 23 Dec 12, 2022
High-quality source code, easy implementation

High-quality source code, easy implementation

T.M 0 Nov 8, 2021
The source code to How to build a news app with react native 📰

Royal News · The source code to How to build a news app with react native article on NimreyCode, medium, and dev.to. Requirements: Android Studio or X

Mohammed Salman 96 Aug 16, 2022
Gett's Design System code generator. Use Zeplin Styleguides as your R&D's Single Source of Truth.

Prism is a Design System code generator developed by the team at Gett ?? . Synchronizing design teams with engineering teams is a huge challenge. As t

Gett 346 Dec 31, 2022
ESP source code for Free Fire (iOS jailbreak)

ESP FreeFire ESP source code for Free Fire (iOS jailbreak, Free Fire version: 1.93.1). This source is for learning purpose only, please do not use it

Huy Nguyen 11 Dec 25, 2022
It's a pet project which has been developed as a code challenge

What is it ❓ It's a pet project which has been developed as a code challenge. It's written purely in Swift without using 3rd party frameworks. You can

iMamad 1 Apr 23, 2022
A starter project for Sample Project in Objective C.

A starter project for Sample Project in Objective C.

Zeeshan Haider 31 Jul 31, 2021
Start your next Open-Source Swift Framework 📦

SwiftKit enables you to easily generate a cross platform Swift Framework from your command line. It is the best way to start your next Open-Source Swi

Sven Tiigi 821 Dec 28, 2022
A Simple way help you drop or drag your source (like UIImage) between different App.

A Simple way help you drop or drag your source (like UIImage) between different App.

逸风 13 Nov 24, 2022
Open-source jailbreaking tool for many iOS devices

Open-source jailbreaking tool for many iOS devices *Read disclaimer before using this software. checkm8 permanent unpatchable bootrom exploit for hund

null 0 Nov 6, 2021
A free and open source xkcd comic reader for iOS.

A free, ad-free, open-source, native, and universal xkcd.com reader for iOS. Download it from the app store now! Architecture AFNetworking for network

Mike 249 Dec 12, 2022
Collaborative List of Open-Source iOS Apps

Open-Source iOS Apps A collaborative list of open-source iOS, iPadOS, watchOS and tvOS apps, your contribution is welcome ?? Jump to Apple TV Apple Wa

null 33k Dec 30, 2022
Open-source implementation of Apple's Combine for processing values over time

CombineX 简体中文 Open-source implementation of Apple's Combine for processing values over time. Though CombineX have implemented all the Combine interfac

Luo Xiu 1 Dec 30, 2021
Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/

Joplin® is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are sea

Laurent 33.7k Dec 30, 2022
Beam: the open source Reddit client for iOS

Beam for Reddit An open source Reddit client for iOS. Introduction Hi, we're Awkward. In 2014, we started working on a Reddit client called Beam. In t

awkward 250 Dec 30, 2022
Open source Clips-inspired app.

AlohaGIF Website Funny moments? Want to share it as a GIF, but you are worried that you will lose speech from video? Aloha will scan sound and attach

Mike Pyrka 61 Sep 16, 2022
SecretSquirrel: A Demonstration of releasing Closed Source libraries privately via SPM

SecretSquirrel: A Demonstration of releasing Closed Source libraries privately via SPM. A demo repository that showcases how to properly vend a closed

Jerrad Thramer 2 Apr 27, 2022
Free and open source manga reader for iOS and iPadOS.

Aidoku A free and open source manga reading application for iOS and iPadOS. Features Ad free Robust WASM source system Online reading through external

null 421 Jan 2, 2023
An Xcode Source Editor Extension that helps navigating to many places easier

XcodeWay ❤️ Support my apps ❤️ Push Hero - pure Swift native macOS application to test push notifications PastePal - Pasteboard, note and shortcut man

Khoa 543 Dec 1, 2022