{"id":19316642,"url":"https://github.com/wisskirchenj/desktop-calculator","last_synced_at":"2026-06-17T17:34:02.633Z","repository":{"id":186769353,"uuid":"673916061","full_name":"wisskirchenj/desktop-calculator","owner":"wisskirchenj","description":"Graphical (Swing-based) Desktop calculator","archived":false,"fork":false,"pushed_at":"2023-08-07T15:37:24.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-06T04:12:45.389Z","etag":null,"topics":["calculator-application","parser","recursion","swing-gui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wisskirchenj.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-02T18:01:38.000Z","updated_at":"2023-08-07T15:35:44.000Z","dependencies_parsed_at":"2023-08-07T17:16:05.401Z","dependency_job_id":null,"html_url":"https://github.com/wisskirchenj/desktop-calculator","commit_stats":null,"previous_names":["wisskirchenj/desktop-calculator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fdesktop-calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fdesktop-calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fdesktop-calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fdesktop-calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wisskirchenj","download_url":"https://codeload.github.com/wisskirchenj/desktop-calculator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240420938,"owners_count":19798501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-application","parser","recursion","swing-gui"],"created_at":"2024-11-10T01:12:04.841Z","updated_at":"2026-06-17T17:33:57.598Z","avatar_url":"https://github.com/wisskirchenj.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IDEA EDU Course ...\n\nImplemented in the Java Desktop Application Developer Track of hyperskill.org's JetBrain Academy.\n\nAnother Swing project to stay a bit in touch with layouts and graphical stuff.\n\n## Technology / External Libraries\n\n- POJO Java 20,\n- javax.swing frontend, SwingWorker\n- with Lombok annotation processors,\n- Junit 5 with \n- Mockito (mockito-inline) testing.\n\n## Repository Contents\n\nThe sources of main project tasks (5 stages) and unit, mockito testing.\n\n## Program description\n\nA Swing GUI version of a desktop calculator - not more not less :-)\n\nHave fun!\n\n## Project completion\n\nProject was completed on 07.08.23\n\n## Progress\n\n02.08.23 Project started - Initial repo setup.\n\n02.08.23 Stage 1 completed - Setup a swing Desktop Calculator UI using BoxLayout. Perform simple summing.\n\n02.08.23 Stage 2 completed - Calculator performs 4 base operations, no decimal point button. EquationSolver class added\nto model-package.\n\n03.08.23 Stage 3 completed - Add decimal point, C and Del buttons. An equation label now shows the typed equation and\npress on \"=\" solves and displays the result. Equation parsing and Dot before line operations is handled.\n\n06.08.23 Stage 4 completed - Add syntax checks while typing for the growing equation and when solving. Add a \nEquationTextResolver class to handle this. Also validate the equation on \"=\" press, mark in RED if syntax fails \nor division by zero. Further resolve _abbreviated decimals_ (as `.2`) when operator or \"=\" is entered. \n\n07.08.23 Final stage 5 completed - Add smart parentheses handling (with just one button) as well as exponentiation and \nsquare root buttons. Equation Solver uses recursion and starts resolving inner parentheses. The operations are performed \naccording to precedence from left to right using end-recursions and Regexp-matchers.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisskirchenj%2Fdesktop-calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwisskirchenj%2Fdesktop-calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisskirchenj%2Fdesktop-calculator/lists"}