{"id":16548474,"url":"https://github.com/iamwatchdogs/calculator_gui","last_synced_at":"2025-06-17T19:34:42.109Z","repository":{"id":187862005,"uuid":"677506869","full_name":"iamwatchdogs/Calculator_GUI","owner":"iamwatchdogs","description":"A simple GUI-based Calculator made using Java AWT.","archived":false,"fork":false,"pushed_at":"2023-08-25T13:18:54.000Z","size":194,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T12:48:49.956Z","etag":null,"topics":["awt","awt-gui","calculator","calculator-application","java","javaapplication","javaawt","open-source"],"latest_commit_sha":null,"homepage":"https://iamwatchdogs.github.io/Calculator_GUI/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamwatchdogs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-08-11T18:47:13.000Z","updated_at":"2023-09-10T04:45:03.000Z","dependencies_parsed_at":"2024-11-14T20:46:09.761Z","dependency_job_id":null,"html_url":"https://github.com/iamwatchdogs/Calculator_GUI","commit_stats":null,"previous_names":["iamwatchdogs/tairp"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/iamwatchdogs/Calculator_GUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamwatchdogs%2FCalculator_GUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamwatchdogs%2FCalculator_GUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamwatchdogs%2FCalculator_GUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamwatchdogs%2FCalculator_GUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamwatchdogs","download_url":"https://codeload.github.com/iamwatchdogs/Calculator_GUI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamwatchdogs%2FCalculator_GUI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260427386,"owners_count":23007498,"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":["awt","awt-gui","calculator","calculator-application","java","javaapplication","javaawt","open-source"],"created_at":"2024-10-11T19:26:03.050Z","updated_at":"2025-06-17T19:34:37.074Z","avatar_url":"https://github.com/iamwatchdogs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Calculator_GUI \u003cimg src=\"https://github.com/iamwatchdogs/Calculator_GUI/actions/workflows/pages/pages-build-deployment/badge.svg\" alt=\"Java Docs deployment status\" align=\"right\"\u003e\u003cimg src=\"https://github.com/iamwatchdogs/Calculator_GUI/actions/workflows/code-linter.yml/badge.svg\" alt=\"Java Code linter Status\" align=\"right\"\u003e\n\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n\n[![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)](https://github.com/iamwatchdogs?tab=repositories\u0026q=\u0026type=public\u0026language=java\u0026sort=)\n![Eclipse](https://img.shields.io/badge/Eclipse-FE7A16.svg?style=for-the-badge\u0026logo=Eclipse\u0026logoColor=white)\n\n\u003cbr\u003e\n\n[![Open Source](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/iamwatchdogs?tab=repositories\u0026q=\u0026type=public\u0026language=\u0026sort=)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/iamwatchdogs/Calculator_GUI/pulls)\n[![GitHub issues](https://img.shields.io/github/issues/iamwatchdogs/Calculator_GUI.svg)](https://github.com/iamwatchdogs/Calculator_GUI/issues)\n[![GitHub pull-requests merged](https://badgen.net/github/merged-prs/iamwatchdogs/Calculator_GUI)](https://github.com/iamwatchdogs/Calculator_GUI.js/pulls?q=is%3Amerged)\n[![GitHub release](https://img.shields.io/github/release/iamwatchdogs/Calculator_GUI)](https://GitHub.com/iamwatchdogs/Calculator_GUI/releases/)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\u003c/div\u003e\n\u003cbr\u003e\n\nThis a dark-mode GUI-based simple calculator that does all basic arithmetic operations like Add, subtract, multiplication, division and modular division supporting decimal values rounded to a 2-floating point precision. Including that, it does other basic required operations like Backspace, Clear and negate value. I have decided to build this small application based on the concept of MVC Architecture.\n\n- [**CalculatorModel**](./src/calculator/CalculatorModel.java \"Goto CalculatorModel.java\"): This class does the job of **Model** in MVC Architecture i.e., handles all the calculations and operations required for this Calculator application.\n- [**CalculatorView**](./src/calculator/CalculatorView.java \"Goto CalculatorView.java\"): This class acts as the **View** in MVC Architecture, which means that this class is responsible for handling all the GUI-related for this application.\n- [**CalculatorController**](./src/calculator/CalculatorController.java \"Goto CalculatorController.java\"): This class is the controller, according to MVC Architecture, takes care of all the event handling without interfering with the GUI element directly. This class will execute all the calculations and operations with the help of [CalculatorModel](./src/calculator/CalculatorModel.java \"Goto CalculatorModel.java\") class and also handles the exceptions that might occur while performing calculations and operations.\n\nI have spent quite a while on this small project trying to learn, understand and implement the concepts of the core Java while trying to implement the industrial standards _(Trying my best to be close to perfect)_. This project helped me get a good understanding of various concepts like MVC Architecture, OOPS, Java AWT, Regular expression, Lambda functions, a bit of generic \u0026 collection framework, Event Handling, Exception Handling, annotations, Java Docs, Debugging, PMD, etc. And I'm looking forward to using this small experience to build greater stuff.\n\n\u003e **Note** :\n\u003e\n\u003e - This project was built using **Eclipse IDE and OpenJDK Temurin-17.0.7+7**.\n\u003e - The Java Doc for this project is hosted through GitHub pages, So you can visit the pages to get an overview of the project files.\n\u003e - I have decided to build this whole project based only on Java AWT instead of Swing or other libraries, just to make my fundamentals strong.\n\u003e - This project is **allowed for personal use, learning and contribution**.\n\u003e - Reuploading this project as your own or using it as your project for any kind of submission is **strictly forbidden**.\n\n## Contribution:\n\nHi, there fellow developer !!!... I'm happy to see you eager to contribute to this repo/project in any way possible. Before you proceed with any kind of contribution, please set up your project within your local system and it is suggested to use **Eclipse IDE** as this project was developed using the very same IDE. After setting it up within your system, go on and try out stuff...\n\n\u003e **Found a bug ???...** Report it by creating an issue right in the issue section.\n\n\u003e **Got an idea to improve ???...** Create an issue suggesting your idea.\n\n\u003e **Want to work on any of the issues you have created or found in the issue section ???...**\n\u003e\n\u003e \u003e Ping me within the same chat that you want to work on, and I'll assign you the issue so that others might know that you're working on the issue.\n\u003e \u003e When you are done create a Pull Request, so that I can review \u0026 merge it and also close the issue.\n\n### Prerequisites\n\nJust make sure you're comfortable with the following concepts before you start code-wise contribution:\n\n- **\\*Git \u0026 GitHub**: At least know how to view issues and make pull requests.\n- **\\*Core Java**:\n  - **Object-oriented Programming** _(Including Abstract Classes, Interfaces)_\n  - **Java AWT**\n  - Event Handling\n  - Exception Handling\n  - **Java Docs**\n  - **Documenting your code**\n- Any other Concept that you want to integrate with the project.\n\nIf you're a beginner or don't want to contribute code-wise, then you can help me in other ways mentioned above.\n\n### Basic steps\n\nLet's get started with the very hands-on fundamentals for code-wise contribution...\n\nYou can get started by forking this repo and cloning it into your system. Here are some of the git commands you'll be using,\n\n```bash\n# Clone your forked repo into your local system\ngit clone https://github.com/\u003cYour-GitHub-Name\u003e/Calculator_GUI.git\n\n# Creating a new branch\ngit checkout -b \u003cbranch-name\u003e\n\n# Adding all the elements/changes into tracked/staged state\ngit add .\n\n# Committing your every change\ngit commit -m \"\u003cmessage\u003e\"\n\n# Updating your remote repo (or) pushing your commits to your forked repo\ngit push origin \u003cbranch-name\u003e\n```\n\nAfter you're done with your changes, you can push them back to your remote repository. So that you can send me a pull request to merge the changes into the original Repository.\nAnd I highly suggest every contributor check out the [Important-Rules](CONTRIBUTING.md#important-rules \"Goto Important Rules in CONTRIBUTING.md\") mentioned in [CONTRIBUTING.md](CONTRIBUTING.md \"Goto CONTRIBUTING.md\").\n\n\u003e Don't know where to start ???... (or) Sounds too Complicated ???... Check out [CONTRIBUTING.md](CONTRIBUTING.md \"Let's go to CONTRIBUTING.md\").\n\n## Final Output:\n\n\u003cdiv align=\"center\"\u003e\n\n![Output](src/calculator/images/OP.png \"Goto OP.png\")\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamwatchdogs%2Fcalculator_gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamwatchdogs%2Fcalculator_gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamwatchdogs%2Fcalculator_gui/lists"}