https://github.com/cardijey/schulrechner
The calculator you know from school
https://github.com/cardijey/schulrechner
calculator cordova electron fdroid javascript nostalgia science-education scientific-calculator
Last synced: 5 months ago
JSON representation
The calculator you know from school
- Host: GitHub
- URL: https://github.com/cardijey/schulrechner
- Owner: CardiJey
- License: gpl-3.0
- Created: 2025-04-05T15:59:17.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-13T12:43:54.000Z (about 1 year ago)
- Last Synced: 2025-06-13T13:47:30.138Z (about 1 year ago)
- Topics: calculator, cordova, electron, fdroid, javascript, nostalgia, science-education, scientific-calculator
- Language: JavaScript
- Homepage: https://cardijey.github.io/#schulrechner
- Size: 3.26 MB
- Stars: 14
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/CardiJey/schulrechner/actions/workflows/fastlane.yml)
[](https://github.com/CardiJey/schulrechner/actions/workflows/npm_tests.yml)
# SCHULRECHNER
This is the repository for the Schulrechner App.
You can get the APK directly from the [releases](https://github.com/CardiJey/schulrechner/releases/latest/) or from [F-Droid](https://f-droid.org/packages/io.cardijey.schulrechner). You can also install the Linux-desktop version from [Flathub](https://flathub.org/apps/io.github.CardiJey.schulrechner) or just open the [web version](https://cardijey.github.io/schulrechner).
Alternatively you can build it yourself by installing [Cordova](https://cordova.apache.org/) and then running the steps in the [Github CI](https://github.com/CardiJey/schulrechner/blob/main/.github/workflows/main.yml).
# Contributing
If you want to contribute, just fork this repo and create a merge request. Please also create a quick issue with the label "Feature Request" where you describe what you plan to contribute. Maybe someone is already working on that.
For contributing new calculator designs please read the following:
### Adding New GUI Designs
This project supports multiple GUI designs, which can be switched dynamically.
To add a new GUI design:
1. **Create your SVG file**
- Design your GUI as an SVG file, ensuring it meets the following requirements:
- Use proper element labels (via the `inkscape:label` property) matching the keys found in `www/img/gui/Classic_by_Joris Yidong Scholl.svg`.
- Include polygon elements named `display_input` and `display_output`.
- Include elements `scroll_x_order` and `scroll_y_border` to define scrolling behavior.
- For each key element (`key_*`), include a corresponding `label_background_*` element for button press animations (these are handled by CSS).
- Optionally, add locale-specific labels by appending locale codes like `label_,de-DE` or `label,_en-US`. Only `de-DE` and `en-US` are supported for now.
- Add SVG metadata specifying **author**, **date**, and an **open-source license** (e.g., CC0, CC-BY, CC-BY-SA) for compatibility with this GPL3 project.
2. **Create your JSON file**
- There are some additional settings needed for a working calculator design
- Please take a look at `www/img/gui/Classic_by_Joris Yidong Scholl.json` to see what these are
3. **Create a pull request to add your SVG file to the repository**
- Place your GUI SVG and JSON in the `www/img/gui/` folder in a pull request. They should be named "Design Name\_by\_Author Name.svg" and ".json"
4. **I'll come test it then and we'll fix any possible errors together**
# Copyright
https://github.com/CardiJey/schulrechner
Copyright (C) 2025 Joris Yidong Scholl
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see .
# Dependencies
This project uses math.js
https://github.com/josdejong/mathjs
Copyright (C) 2013-2025 Jos de Jong
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
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.