{"id":15095935,"url":"https://github.com/denisakp/shopez","last_synced_at":"2026-01-06T15:41:08.735Z","repository":{"id":244426115,"uuid":"815162903","full_name":"denisakp/shopez","owner":"denisakp","description":"A simple eCommerce platform showcasing microservices architecture with full DevSecOps integration.","archived":false,"fork":false,"pushed_at":"2024-07-11T01:54:49.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T17:44:19.007Z","etag":null,"topics":["docker-compose","gin-gonic","keycloak","kubernetes","spring-boot"],"latest_commit_sha":null,"homepage":"","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/denisakp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-14T13:39:31.000Z","updated_at":"2024-06-21T00:10:09.000Z","dependencies_parsed_at":"2024-06-14T17:13:09.689Z","dependency_job_id":"f0e14a95-b6ee-4a8a-884f-694223af2a13","html_url":"https://github.com/denisakp/shopez","commit_stats":null,"previous_names":["denisakp/shopez"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisakp%2Fshopez","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisakp%2Fshopez/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisakp%2Fshopez/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisakp%2Fshopez/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denisakp","download_url":"https://codeload.github.com/denisakp/shopez/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245852658,"owners_count":20683068,"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":["docker-compose","gin-gonic","keycloak","kubernetes","spring-boot"],"created_at":"2024-09-25T15:44:02.302Z","updated_at":"2026-01-06T15:41:08.690Z","avatar_url":"https://github.com/denisakp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShopEZ\n\nA simple eCommerce platform showcasing microservices architecture with full DevSecOps integration.\n\n## Table of Contents\n\n- [ShopEZ](#shopez)\n  - [Table of Contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Architecture](#architecture)\n  - [Microservices](#microservices)\n  - [Technologies Used](#technologies-used)\n  - [Setup and Installation](#setup-and-installation)\n    - [Prerequisites](#prerequisites)\n    - [Steps](#steps)\n  - [Usage](#usage)\n  - [CI/CD](#cicd)\n  - [DevOps](#devops)\n  - [Security](#security)\n  - [Monitoring](#monitoring)\n  - [Contributing](#contributing)\n  - [License](#license)\n\n## Introduction\n\nShopEZ is a practice project designed to provide hands-on experience with building, deploying, and securing a microservices architecture. It includes multiple microservices written in different programming languages, a frontend application, and a comprehensive DevOps setup.\n\n## Architecture\n\n![Architecture Diagram](path/to/architecture-diagram.png)\n\n## Microservices\n\n1. **User Service (Golang - Gin)**\n   - Handles user registration, login, and profile management.\n   - Database: PostgreSQL\n\n2. **Product Service (Java - Quarkus)**\n   - Manages the product catalog.\n   - Database: MongoDB\n   - Other: Typesense for products search and filtering.\n\n3. **Order Service (Python - FastAPI)**\n   - Handles order creation, update, and retrieval.\n   - Database: PostgreSQL\n\n4. **Payment Service (TypeScript - NestJS)**\n   - Processes payments and handles payment status.\n   - Database: PostgreSQL\n\n5. **Frontend (Next.js)**\n   - User interface for the eCommerce platform.\n\n## Technologies Used\n\n- **Programming Languages:** Golang, Java, Python, TypeScript\n- **Frameworks:** Gin, Quarkus, FastAPI, NestJS, Next.js\n- **Databases:** PostgreSQL, MongoDB\n- **Message Broker:** RabbitMQ or Kafka\n- **Caching:** Redis\n- **API Gateway:** Kong\n- **CI/CD:** GitHub Actions, Jenkins, GitLab CI\n- **Containerization:** Docker, Docker Compose\n- **Orchestration:** Kubernetes, Helm\n- **Service Mesh:** Istio\n- **Ingress Controller:** Nginx\n- **SSL Management:** Cert-Manager\n- **Authentication:** Keycloak, OAuth2 Proxy\n- **Monitoring:** Prometheus, Grafana, Zipkin, AlertManager\n- **Infrastructure as Code:** Terraform\n\n## Setup and Installation\n\n### Prerequisites\n\n- Docker\n- Docker Compose\n- Kubernetes (Minikube or DigitalOcean)\n- Terraform\n- Git\n\n### Steps\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/denisakp/shopez.git\n   cd shopez\n   ```\n\n2. **Setup Infrastructure with Terraform:**\n   ```bash\n   cd infrastructure\n   terraform init\n   terraform apply\n   ```\n\n3. **Build and run services with Docker Compose:**\n   ```bash\n   cd ..\n   docker-compose up --build\n   ```\n\n4. **Deploy to Kubernetes:**\n   ```bash\n   kubectl apply -f kubernetes-manifests/\n   helm install shop-ez helm-charts/\n   ```\n\n## Usage\n\n- Access the frontend at `http://localhost:3000`\n- Use the API endpoints to interact with the services (detailed in each service's README).\n\n## CI/CD\n\nThis project includes automated CI/CD pipelines using GitHub Actions, Jenkins, and GitLab CI. Each pipeline performs the following tasks:\n- Build and test the code.\n- Build Docker images.\n- Push Docker images to the container registry.\n- Deploy to Kubernetes based on the git branch (dev, staging, main).\n\n## DevOps\n\n- **Containerization:** Each microservice is containerized using Docker.\n- **Orchestration:** Kubernetes is used to manage the deployment of containers.\n- **Service Mesh:** Istio ensures secure communication between services.\n- **Ingress:** Nginx Ingress Controller manages external access.\n- **SSL:** Cert-Manager automates SSL certificate management.\n- **Infrastructure:** Terraform provisions the infrastructure on DigitalOcean.\n\n## Security\n\n- **Authentication and Authorization:** Keycloak with OAuth2 Proxy secures the administration dashboard.\n- **Network Policies:** Ensure that applications in different namespaces access only the appropriate resources.\n- **mTLS:** Istio ensures all communications within the cluster are encrypted.\n\n## Monitoring\n\n- **Metrics:** Prometheus collects metrics from the services.\n- **Visualization:** Grafana visualizes metrics.\n- **Tracing:** Zipkin traces requests across microservices.\n- **Alerting:** AlertManager sends alerts based on Prometheus metrics.\n\n## Contributing\n\nContributions are welcome! Please submit a pull request or open an issue to discuss any changes.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisakp%2Fshopez","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenisakp%2Fshopez","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisakp%2Fshopez/lists"}