{"id":22305010,"url":"https://github.com/ezhilezhil/calculator","last_synced_at":"2026-05-18T10:07:59.847Z","repository":{"id":265599682,"uuid":"872429059","full_name":"ezhilezhil/Calculator","owner":"ezhilezhil","description":"A powerful Java-based calculator integrated with a Jenkins CI/CD pipeline to automate the development process. This project demonstrates seamless integration of code compilation, unit testing, static analysis, and code coverage metrics to ensure high-quality software delivery. ","archived":false,"fork":false,"pushed_at":"2024-11-30T04:13:33.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T00:44:40.022Z","etag":null,"topics":["calculator","devops","jenkins","pipeline"],"latest_commit_sha":null,"homepage":"https://jenkins-pipeline-guide.netlify.app","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/ezhilezhil.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-14T12:26:26.000Z","updated_at":"2024-11-30T04:18:36.000Z","dependencies_parsed_at":"2024-11-30T04:25:31.154Z","dependency_job_id":"542a8b03-52eb-4f1d-a61b-c952c26cde14","html_url":"https://github.com/ezhilezhil/Calculator","commit_stats":null,"previous_names":["ezhilezhil/calculator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezhilezhil%2FCalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezhilezhil%2FCalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezhilezhil%2FCalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezhilezhil%2FCalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezhilezhil","download_url":"https://codeload.github.com/ezhilezhil/Calculator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245568580,"owners_count":20636803,"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","devops","jenkins","pipeline"],"created_at":"2024-12-03T19:09:22.382Z","updated_at":"2025-10-23T20:00:09.663Z","avatar_url":"https://github.com/ezhilezhil.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 **Calculator Project** \n\nA robust and efficient **Java-based Calculator**, seamlessly integrated with **Jenkins CI/CD Pipelines** for continuous integration, testing, and deployment. This project is a great example of using automation to ensure code quality and reliability.\n\n---\n\n## 🌟 **Key Features**\n\n✨ Perform basic arithmetic operations: **Addition, Subtraction, Multiplication, Division**  \n✨ Automated **Unit Testing** with JUnit for reliability  \n✨ Integrated **Static Code Analysis** for quality assurance  \n✨ Comprehensive **Code Coverage** metrics with JaCoCo  \n✨ End-to-end **CI/CD Pipeline** with Jenkins for automation  \n\n---\n\n## 🛠️ **Jenkins Pipeline Workflow**\n\nThe Jenkins pipeline consists of multiple automated stages to ensure a smooth CI/CD process:\n\n| **Stage**           | **Description**                                                                 |\n|----------------------|---------------------------------------------------------------------------------|\n| **1. Setup**         | Cleans the workspace and prepares the environment                              |\n| **2. Compile**       | Compiles the Java code to ensure it’s error-free                               |\n| **3. Static Analysis**| Analyzes code quality using tools like **SonarQube** or **Checkstyle**         |\n| **4. Unit Test**     | Runs JUnit test cases to validate functionality                                |\n| **5. Code Coverage** | Measures code coverage with **JaCoCo**, ensuring a high-quality codebase       |\n| **6. Build Artifact**| Generates a deployable JAR file                                                |\n| **7. Deployment**    | Optionally deploys the artifact to staging/production (if configured)          |\n\n---\n\n## 🚀 **Technologies \u0026 Tools Used**\n\n- **Language**: Java  \n- **Build Tool**: Maven  \n- **CI/CD Tool**: Jenkins  \n- **Testing Framework**: JUnit  \n- **Code Coverage**: JaCoCo  \n- **Static Analysis**: SonarQube (Optional)  \n\n---\n\n## 📋 **Prerequisites**\n\nBefore you begin, ensure you have the following installed on your system:  \n\n✔️ **Java JDK** (v8 or above)  \n✔️ **Maven** (v3.6 or above)  \n✔️ **Jenkins** (v2.0 or above)  \n✔️ Optional: SonarQube for static analysis  \n\n---\n\n## 🚀 **Getting Started**\n\nFollow these steps to set up the project on your local machine:\n\n### 1️⃣ Clone the Repository\n\n```bash\ngit clone https://github.com/ezhilezhil/Calculator.git\n```\n\n### 2️⃣ Navigate to the Project Directory\n\n```bash\ncd Calculator\n```\n\n### 3️⃣ Build the Project\n\n```bash\nmvn clean install\n```\n\n### 4️⃣ Run the Application\n\n```bash\njava -jar target/calculator.jar\n```\n\n---\n\n## 🔧 **Setting Up Jenkins**\n\nTo automate the project using Jenkins:\n\n1. **Clone Repository in Jenkins**:\n   - Configure Jenkins to clone the repository using the Git URL.\n\n2. **Set Up Pipeline**:\n   - Create a pipeline with the stages outlined in the **Pipeline Workflow** section.\n\n3. **Configure Maven in Jenkins**:\n   - Go to `Manage Jenkins \u003e Global Tool Configuration` and set up Maven.\n\n4. **Optional**: Add SonarQube and JaCoCo integration for better analysis and coverage.\n\n---\n\n## 📁 **Project Structure**\n\n```plaintext\nCalculator/\n├── src/\n│   ├── main/\n│   │   └── java/\n│   │       └── com.example.calculator/\n│   │           └── Calculator.java  # Core logic\n│   └── test/\n│       └── java/\n│           └── com.example.calculator/\n│               └── CalculatorTest.java  # Unit tests\n├── pom.xml  # Maven configuration\n└── README.md\n```\n\n---\n\n## 📊 **Screenshots**\n\n### Jenkins Pipeline View\n![WhatsApp Image 2024-10-19 at 12 09 25](https://github.com/user-attachments/assets/1996bf52-614b-4c70-a66a-1ec2a8280a36)\n\n\n---\n\n## 🌟 **Future Enhancements**\n\n- ➕ Add support for **advanced mathematical operations** like square root, logarithms, etc.  \n- 🖥️ Build a **GUI/Web-based interface** for better usability.  \n- 📦 Integrate with **Docker** for containerized builds and deployments.  \n\n---\n\n## 📜 **License**\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n---\n\n**💡 Tip**: You can explore how CI/CD workflows can improve software development speed and quality. Happy coding! 🚀  \n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezhilezhil%2Fcalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezhilezhil%2Fcalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezhilezhil%2Fcalculator/lists"}