This is the parent repository that links all microservices and infrastructure components as git submodules.
This e-commerce platform consists of the following components:
- be-api-gin: Backend API Gateway built with Go and Gin framework
- svc-user-django: User service built with Django
- svc-inventory-rails: Inventory service built with Ruby on Rails
- svc-listing-spring: Listing service built with Spring Boot
- fe-nextjs: Frontend application built with Next.js
- infra-terraform-eks: Infrastructure as Code using Terraform for EKS
- local-k8s: Local Kubernetes configuration and setup
- proto-schemas: Protocol buffer schemas and definitions
Each component is maintained as an independent repository and linked here as a git submodule:
be-api-gin/→ https://github.com/propel-gtm/be-api-ginfe-nextjs/→ https://github.com/propel-gtm/fe-nextjsinfra-terraform-eks/→ https://github.com/propel-gtm/infra-terraform-ekslocal-k8s/→ https://github.com/propel-gtm/local-k8sproto-schemas/→ https://github.com/propel-gtm/proto-schemassvc-inventory-rails/→ https://github.com/propel-gtm/svc-inventory-railssvc-listing-spring/→ https://github.com/propel-gtm/svc-listing-springsvc-user-django/→ https://github.com/propel-gtm/svc-user-django
git clone --recursive https://github.com/propel-gtm/ecommerce-polyrepo.gitOr if you already cloned it without submodules:
git submodule update --init --recursivegit submodule update --remotegit submodule update --remote be-api-gingit pull --recurse-submodules- Navigate to the submodule directory:
cd be-api-gin- Make your changes and commit them:
git add .
git commit -m "Your changes"
git push origin main- Update the parent repo to point to the new commit:
cd ..
git add be-api-gin
git commit -m "Update be-api-gin submodule"
git pushIf you only want to work on a specific component, you can clone its individual repository:
git clone https://github.com/propel-gtm/be-api-gin.git- Independent Development: Each service can be developed, tested, and deployed independently
- Version Control: Parent repo tracks specific commits of each submodule
- Flexible Workflows: Work on individual repos or the full system
- Clean Separation: Clear boundaries between components