{"id":20091537,"url":"https://github.com/tasxatzial/calculator","last_synced_at":"2026-04-17T18:02:03.124Z","repository":{"id":169590830,"uuid":"638675849","full_name":"tasxatzial/calculator","owner":"tasxatzial","description":"Arbitrary precision calculator. Supports term grouping.","archived":false,"fork":false,"pushed_at":"2025-02-28T12:47:03.000Z","size":779,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-28T19:05:31.721Z","etag":null,"topics":["calculator","calculator-javascript","javascript-calculator"],"latest_commit_sha":null,"homepage":"https://tasxatzial.github.io/calculator/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tasxatzial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-09T21:32:15.000Z","updated_at":"2025-02-28T12:47:52.000Z","dependencies_parsed_at":"2023-10-15T13:20:43.447Z","dependency_job_id":"f63364a7-c3f8-4226-b9e7-a2f3feb3a6ae","html_url":"https://github.com/tasxatzial/calculator","commit_stats":null,"previous_names":["tasxatzial/calculator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tasxatzial/calculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasxatzial%2Fcalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasxatzial%2Fcalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasxatzial%2Fcalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasxatzial%2Fcalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tasxatzial","download_url":"https://codeload.github.com/tasxatzial/calculator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasxatzial%2Fcalculator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31939788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator","calculator-javascript","javascript-calculator"],"created_at":"2024-11-13T16:33:04.252Z","updated_at":"2026-04-17T18:02:03.095Z","avatar_url":"https://github.com/tasxatzial.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Calculator\r\n\r\nA simple calculator that supports the 4 basic operations on decimal numbers and grouping of terms using parentheses.\r\n\r\n[Live version](https://tasxatzial.github.io/calculator/)\r\n\r\n## Features\r\n\r\n* Dark \u0026 light theme. The selected theme is restored when the page reloads.\r\n* If the user has not selected a theme, the applied theme is always synchronized with the system theme.\r\n* Calculations are saved in history and can be reloaded.\r\n* History is restored when the page reloads.\r\n* Keyboard input is supported.\r\n* Arbitrary precision calculations with [decimal.js](https://github.com/MikeMcl/decimal.js).\r\n\r\n## Implementation\r\n\r\n* Accessible + screen reader friendly.\r\n* Variation of the [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) pattern (only for inputting expressions, performing calculations, and displaying the results).\r\n* Expressions are calculated with the [Shunting yard algorithm](https://en.wikipedia.org/wiki/Shunting_yard_algorithm).\r\n\r\n## Dependencies\r\n\r\nThe project is written in HTML, CSS, JavaScript.\r\n\r\nThe following dependencies will be installed via `npm install`:\r\n\r\n* [:focus-visible](https://github.com/WICG/focus-visible) polyfill.\r\n* [decimal.js](https://github.com/MikeMcl/decimal.js).\r\n\r\n## Run locally\r\n\r\nRun the development version:\r\n\r\n```bash\r\nnpm run dev\r\n```\r\n\r\nBuild the project:\r\n\r\n```bash\r\nnpm run build\r\n```\r\n\r\nBuild \u0026 serve the production version:\r\n\r\n```bash\r\nnpm run serve\r\n```\r\n\r\n## Tests\r\n\r\nVitest is used for testing.\r\n\r\nCurrently, only a basic set of tests has been written for the basic model operations, such as inputting and calculating expressions.\r\n\r\nRun the tests:\r\n\r\n```bash\r\nnpm run test\r\n```\r\n\r\nor, if you prefer access to the browser UI:\r\n\r\n```bash\r\nnpm run test:ui\r\n```\r\n\r\n## Screenshots\r\n\r\nSee [screenshots](screenshots/).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftasxatzial%2Fcalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftasxatzial%2Fcalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftasxatzial%2Fcalculator/lists"}