MCPcopy Index your code
hub / github.com/CardiJey/schulrechner

github.com/CardiJey/schulrechner @v1.15.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.15.0 ↗ · + Follow
254 symbols 403 edges 9 files 0 documented · 0% updated 32d agov1.15.0 · 2026-06-05★ 887 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Check Fastlane NPM Tests

Open in Browser Get it on F-Droid Get it on Flathub

SCHULRECHNER

This is the repository for the Schulrechner App. You can get the APK directly from the releases or from F-Droid. You can also install the Linux-desktop version from Flathub or just open the web version. Alternatively you can build it yourself by installing Cordova and then running the steps in the Github CI.

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
  2. Design your GUI as a plain SVG file, ensuring it meets the following requirements:
    • Use proper element ids matching the ids found in www/img/gui/Classic_by_Joris Yidong Scholl.svg.
    • Include polygon elements named display_input and display_output.
    • Include elements scroll_x_border and scroll_y_border to define scrolling behavior.
    • Include the indicator_* elements found in www/img/gui/Classic_by_Joris Yidong Scholl.svg.
    • 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_comma_de_DE or label_comma_en_US. Only de_DE and en_US are supported for now.
    • Safe your SVG as a plain SVG. You can place your source files (for example the Inkscape SVG) in the assets/svg-src folder.
  3. 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.
  4. Your design should be functionally complete with all buttons drawn and given the proper id, even if the button in questions is not implemented in the Schulrechner yet. I'll toggle them visible once the feature is implemented.

  5. Create your JSON file

  6. There are some additional settings needed for a working calculator design
  7. Please take a look at www/img/gui/Classic_by_Joris Yidong Scholl.json to see what these are

  8. Create a pull request to add your SVG file to the repository

  9. 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"

  10. I'll come test it then and we'll fix any possible errors together

Copyright

https://github.com/CardiJey/schulrechner

Copyright (C) 2026 Joris Yidong Scholl <joris.scholl@posteo.de>

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 <https://www.gnu.org/licenses/>.

Dependencies

This project uses math.js https://github.com/josdejong/mathjs

Copyright (C) 2013-2026 Jos de Jong <wjosdejong@gmail.com>

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.

Core symbols most depended-on inside this repo

handle
called by 30
www/js/logic.js
toggle_mode
called by 13
www/js/logic.js
align_element
called by 12
www/js/main.js
update_position
called by 11
www/js/logic.js
update_display
called by 8
www/js/logic.js
vertical_align_elements
called by 6
www/js/main.js
reload_app
called by 5
www/js/main.js
add_empty_equation
called by 5
www/js/logic.js

Shape

Method 126
Class 111
Function 17

Languages

TypeScript99%
Java1%

Modules by API surface

www/js/logic.js203 symbols
www/js/main.js27 symbols
tests/input_to_output.js21 symbols
schulrechner-cordova-plugin/src/android/SchulrechnerPlugin.java3 symbols

For agents

$ claude mcp add schulrechner \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact