Skip to content

digabi/abicus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo
Abicus

Abicus is a simple scientific calculator built on web technologies.

Abicus does not include any symbolic computation capabilities.
It is built for use in the Finnish digital matriculation examinations.

screenshot

Note

The calculator was developed especially to be an example of an Abitti 2 application. The source code, the Abitti 2 container, and precompiled binaries of the calculator are made available to the public for demonstration purposes only. The matriculation examination board does not provide support for e.g. installing the precompiled binaries.

We request that any errors in the program are reported to Abitti-support ([email protected])

Development Setup

Clone this repository and make sure you have Node.js installed on your system. The exact version used in development can be found in the .nvmrc file.

If you want to develop the desktop application, you will additionally need to have a Rust toolchain installed on your system. Please then also follow the Tauri set-up instructions for your system.

When Node.js is ready and this repository has been cloned, install the packages by running the following in the cloned directory:

npm install

After all the required packages have been installed, run one of the following commands to start the development server:

  • For the web-application only:

    npm run dev
  • For the web-application and the desktop application:

    npm run tauri dev

Tests

This project uses the Vitest testing framework for unit tests and Playwright for UI tests. After the project has been set up, to run all the tests for the project you can simply run:

npm run test

To run only the unit tests:

npm run test:unit

And to only run the UI tests:

npm run test:ui

Please see the Vitest and/or Playwright documentation for details on e.g. how to filter which tests to run etc.