{"id":23737783,"url":"https://github.com/amar0898/jobapplicationapp-springboot","last_synced_at":"2026-04-08T16:02:06.266Z","repository":{"id":257843025,"uuid":"869774535","full_name":"amar0898/JobApplicationApp-SpringBoot","owner":"amar0898","description":"This repository hosts a Spring Boot-based REST API application that was initially built with a monolithic architecture and subsequently refactored into a microservices architecture. The project covers end-to-end development, integration of essential tools, and deployment.","archived":false,"fork":false,"pushed_at":"2024-11-03T22:34:10.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-24T02:02:49.872Z","etag":null,"topics":["docker","kubernetes","microservice","postgresql","rabbitmq","rest-api","spring-boot","spring-mvc","zipkin"],"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/amar0898.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-08T21:35:34.000Z","updated_at":"2024-11-03T22:34:14.000Z","dependencies_parsed_at":"2024-10-16T17:13:24.376Z","dependency_job_id":"367c7f56-32ab-40cd-b8fc-4e927682da54","html_url":"https://github.com/amar0898/JobApplicationApp-SpringBoot","commit_stats":null,"previous_names":["amar0898/jobapplicationapp-springboot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amar0898/JobApplicationApp-SpringBoot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amar0898%2FJobApplicationApp-SpringBoot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amar0898%2FJobApplicationApp-SpringBoot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amar0898%2FJobApplicationApp-SpringBoot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amar0898%2FJobApplicationApp-SpringBoot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amar0898","download_url":"https://codeload.github.com/amar0898/JobApplicationApp-SpringBoot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amar0898%2FJobApplicationApp-SpringBoot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31562697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["docker","kubernetes","microservice","postgresql","rabbitmq","rest-api","spring-boot","spring-mvc","zipkin"],"created_at":"2024-12-31T08:20:03.472Z","updated_at":"2026-04-08T16:02:06.249Z","avatar_url":"https://github.com/amar0898.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Job Application App - Spring Boot Microservices 🚀\nWelcome to the Job Application App – a Spring Boot-based project, initially built as a monolithic application, then refactored into microservices for enhanced scalability and modularity. This repository demonstrates the complete transition from a monolithic architecture to a microservices architecture, integrated with a variety of modern tools and frameworks.\n\n## 🌟 Project Overview\nThis Job Application App consists of three core microservices:\n\n#### 1. Job Service - Manages job-related data and functionalities.\n#### 2. Company Service - Manages company information and related operations.\n#### 3. Review Service - Handles reviews for jobs and companies.\n\n## 🔑 Key Features\n#### Transition from Monolithic to Microservices Architecture 📦\n#### Databases:\n#####  · H2 for in-memory storage in development ⚙️\n#####  · PostgreSQL for persistent data storage in production 🗄️\n#####  · Message Queue Integration with RabbitMQ 📬\n#####  · Distributed Tracing using Zipkin 🕵️‍♂️\n#####  · Docker and Kubernetes Deployment 🐳\n\n## 🛠 Tech Stack\n • Backend: Spring Boot, Java 17\n • Databases: H2 (Dev), PostgreSQL (Prod)\n • Message Queue: RabbitMQ\n • Tracing: Zipkin\n • Containerization: Docker, Docker Compose\n • Orchestration: Kubernetes\n\n## ⚙️ Setup and Deployment\n#### Prerequisites\n • Java 17 or higher\n • Docker installed\n • Kubernetes installed (e.g., Minikube or any Kubernetes cluster)\n\n### Running the Application Locally\n\n#### 1. Clone the repository:\ngit clone https://github.com/amar0898/JobApplicationApp-SpringBoot.git\ncd JobApplicationApp-SpringBoot\n\n#### 2. Docker Deployment:\nRun the application with Docker Compose:\ndocker-compose up --build\n\n#### 3. Kubernetes Deployment:\nDeploy to a Kubernetes cluster using the configurations in /k8s:\nkubectl apply -f k8s/\n\n#### 4. Accessing the Services:\nThe services will be accessible at the respective endpoints defined in the /k8s or Docker Compose configuration.\nRun below commands in kubernetes shell:\n- minikube service job --url\n- minikube service company --url\n- minikube service review --url\n- minikube service postgres --url\n- minikube service rabbitmq  --url\n- minikube service zipkin --url\n\n## 🏛️ Microservices Architecture\nEach microservice in this project is modular, with its own REST API:\n\n• Job Service: Handles job listings and operations (/jobs).\n• Company Service: Manages company data (/companies).\n• Review Service: Deals with user reviews (/reviews).\n\nServices communicate asynchronously through RabbitMQ, enhancing reliability and loose coupling. Distributed tracing is managed by Zipkin, providing insights into request flows and performance bottlenecks.\n\n## 🔗 API Endpoints\nHere are some key API endpoints for each service:\n\n### 1. Job Service:\n\n• GET /jobs - Retrieve all job postings\n• POST /jobs - Create a new job entry\n• DELETE /jobs - Delete a specefic job\n• PUT /jobs - Update a specefic job\n\n### 2. Company Service:\n\n• GET /companies - Get a list of companies\n• POST /companies - Add a new company\n• DELETE /companies - Delete a specefic company\n• PUT /companies - Update a specefic company\n\n### 3. Review Service:\n\n• GET /reviews - List all reviews\n• POST /reviews - Submit a review for a job or company\n• DELETE /reviews - Delete a specefic review\n• PUT /reviews - Update a specefic review\n\n## 🕵️ Observability\nWith Zipkin integrated, distributed tracing allows for monitoring of request flows across services. This helps in identifying latency issues, optimizing performance, and troubleshooting.\n\n## 🔮 Future Enhancements\n• CI/CD Pipeline: Integrate a CI/CD pipeline to automate testing and deployment. 🛠️\n• Enhanced Security: Add authentication and authorization mechanisms. 🔐\n• Monitoring and Metrics: Integrate Prometheus and Grafana for advanced monitoring. 📊\n\nFeel free to reach out if you have any questions or suggestions! 😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famar0898%2Fjobapplicationapp-springboot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famar0898%2Fjobapplicationapp-springboot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famar0898%2Fjobapplicationapp-springboot/lists"}