ecommerce-microservices
โก๏ธ Microservice Architecture with system for e-commerce project! Spring Boot microservices app with ๐ Spring Cloud, Robust and resilient backend managing e-Commerce app... โ๏ธ Using Kafka Client, kafka server send message, Reactive Programming with WebFlux - Project Reactor.
File Explorer
Download Latest Version (.zip)- _build-service.yml
- cd.yml
- ci.yml
- SECURITY.md
- maven-wrapper.jar
- maven-wrapper.properties
- SecurityConfig.java
- SsoProperties.java
- RoleConstant.java
- AuthController.java
- RoleController.java
- UserController.java
- ChangePasswordRequest.java
- LoginRequest.java
- RefreshTokenRequest.java
- RegisterRequest.java
- UpdateUserRequest.java
- UserResponse.java
- Role.java
- RoleName.java
- User.java
- RoleMapper.java
- UserMapper.java
- RoleRepository.java
- UserRepository.java
- RoleService.java
- RoleServiceImpl.java
- SsoSessionStore.java
- UserService.java
- UserServiceImpl.java
- AuthServiceApplication.java
- db.changelog-v1.0.0.sql
- db.changelog-master.yaml
- messages_en.properties
- messages_vi.properties
- application.yml
- banner.txt
- AuthControllerTest.java
- RoleControllerTest.java
- UserControllerTest.java
- RoleServiceImplTest.java
- UserServiceImplTest.java
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- ApiPaths.java
- MdcKey.java
- PageableConstant.java
- BusinessException.java
- ErrorCode.java
- Messages.java
- DateTimeUtils.java
- ApiResponse.java
- PageResponse.java
- messages_en.properties
- messages_vi.properties
- MessagesTest.java
- PageResponseTest.java
- pom.xml
- BaseKafkaListenerConfig.java
- Operation.java
- BaseCdcConsumer.java
- RetrySupportDql.java
- pom.xml
- KeycloakAdminAutoConfiguration.java
- KeycloakAuthClient.java
- KeycloakClientProperties.java
- KeycloakTokenResponse.java
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
- pom.xml
- LogField.java
- Loggable.java
- LoggerAspect.java
- LoggingAutoConfiguration.java
- LogPerformance.java
- PerformanceLogProperties.java
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
- additional-spring-configuration-metadata.json
- pom.xml
- AuthenticationUtils.java
- BaseSecurityConfig.java
- KeycloakRealmRoleConverter.java
- SecurityAutoConfiguration.java
- SecurityProperties.java
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
- additional-spring-configuration-metadata.json
- pom.xml
- I18nAutoConfiguration.java
- JpaAutoConfiguration.java
- ModelMapperAutoConfiguration.java
- OpenApiAutoConfiguration.java
- RestClientAutoConfiguration.java
- RestClientProperties.java
- WebAutoConfiguration.java
- CsvColumn.java
- CsvName.java
- BaseCsv.java
- CsvExporter.java
- AuditorAwareImpl.java
- AbstractAuditEntity.java
- BaseMapper.java
- EntityCreateUpdateMapper.java
- OpenApiFactory.java
- OpenApiProperties.java
- CorsAutoConfigurer.java
- CorsProperties.java
- ApiExceptionHandler.java
- CorrelationIdFilter.java
- HttpLoggingFilter.java
- HttpLogProperties.java
- I18nProperties.java
- RequestUtils.java
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
- additional-spring-configuration-metadata.json
- application.yml
- CsvExporterTest.java
- pom.xml
- ObjectStorageAutoConfiguration.java
- ObjectStorageService.java
- S3ObjectStorageService.java
- StorageException.java
- StorageObject.java
- StorageProperties.java
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
- pom.xml
- pom.xml
- apisix.yaml
- config.yaml
- ecommerce-realm.json
- create-all-databases.sql
- keycloak-postgres-rollout.md
- maven-wrapper.jar
- maven-wrapper.properties
- ConfigConstant.java
- FavouriteApi.java
- DtoCollectionResponse.java
- FavouriteDto.java
- ProductDto.java
- UserDto.java
- FavouriteId.java
- AbstractMappedEntity.java
- Favourite.java
- ExceptionMessage.java
- FavouriteNotFoundException.java
- FavouriteMappingHelper.java
- FavouriteRepository.java
- FavouriteServiceImpl.java
- FavouriteService.java
- FavouriteServiceApplication.java
- db.changelog-master.yaml
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- en.json
- vi.json
- .gitkeep
- categories.styles.ts
- page.tsx
- dashboard.styles.ts
- page.tsx
- page.tsx
- orders.styles.ts
- page.tsx
- page.tsx
- products.styles.ts
- page.tsx
- page.tsx
- page.tsx
- adminLayout.styles.ts
- layout.tsx
- page.tsx
- layout.tsx
- page.tsx
- favicon.ico
- globals.css
- admin.styles.ts
- adminAuth.styles.ts
- AdminAuthGuard.tsx
- LanguageSwitcher.tsx
- Providers.tsx
- index.ts
- useAuth.ts
- useCategories.ts
- useOrders.ts
- useProducts.ts
- navigation.ts
- request.ts
- routing.ts
- middleware.ts
- .env
- Dockerfile
- eslint.config.mjs
- next.config.ts
- package.json
- postcss.config.mjs
- tsconfig.json
- en.json
- vi.json
- file.svg
- globe.svg
- next.svg
- vercel.svg
- window.svg
- page.tsx
- page.tsx
- layout.tsx
- cart.styles.ts
- page.tsx
- checkout.styles.ts
- page.tsx
- orders.styles.ts
- page.tsx
- page.tsx
- productDetail.styles.ts
- page.tsx
- products.styles.ts
- layout.tsx
- page.tsx
- page.tsx
- layout.tsx
- ezbuy-logo.png
- favicon.ico
- globals.css
- auth.styles.ts
- LoginForm.tsx
- RegisterForm.tsx
- cart.styles.ts
- CartItemRow.tsx
- OrderSummary.tsx
- checkout.styles.ts
- StepIndicator.tsx
- BrandStrip.tsx
- CategoryBar.tsx
- CategorySection.tsx
- FlashSale.tsx
- HeroSection.tsx
- home.styles.ts
- ProductRail.tsx
- ProductTile.tsx
- QuickDeals.tsx
- categoryMenu.styles.ts
- CategoryMenu.tsx
- footer.styles.ts
- Footer.tsx
- Header.tsx
- HeaderParts.tsx
- product.styles.ts
- ProductCard.tsx
- ProductGrid.tsx
- ProductParts.tsx
- FilterSidebar.tsx
- SortSelect.tsx
- ui.styles.ts
- LanguageSwitcher.tsx
- Providers.tsx
- homeMock.ts
- index.ts
- useAuth.ts
- useCategories.ts
- useOrders.ts
- useProducts.ts
- navigation.ts
- request.ts
- routing.ts
- middleware.ts
- .env
- Dockerfile
- eslint.config.mjs
- next.config.ts
- package.json
- postcss.config.mjs
- tsconfig.json
- base.json
- nextjs.json
- package.json
- authStore.ts
- cartStore.ts
- index.ts
- api.ts
- i18n.ts
- types.ts
- utils.ts
- package.json
- tsconfig.json
- DataTable.tsx
- EmptyState.tsx
- FeatureStrip.tsx
- Modal.tsx
- Pagination.tsx
- PromoBanner.tsx
- QuantitySelector.tsx
- SearchBar.tsx
- SectionHeader.tsx
- StatCard.tsx
- Badge.tsx
- Button.tsx
- index.ts
- Input.tsx
- package.json
- tsconfig.json
- .gitignore
- .npmrc
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- README.md
- turbo.json
- maven-wrapper.jar
- maven-wrapper.properties
- InventoryController.java
- TokenValidationRequest.java
- InventoryResponse.java
- TokenValidationResponse.java
- UnauthorizedException.java
- Inventory.java
- InventoryRepository.java
- InventoryService.java
- DataLoader.java
- InventoryServiceApplication.java
- changelog-master.xml
- db.changelog-master.yaml
- inventory-changelog-create.xml
- inventory-changelog-init.xml
- table-inventory-init.sql
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- apisix.yaml
- application.yaml
- auth-service.yaml
- favourite-service.yaml
- inventory-service.yaml
- media-service.yaml
- notification-service.yaml
- order-service.yaml
- payment-service.yaml
- product-service.yaml
- promotion-service.yaml
- rating-service.yaml
- search-service.yaml
- shipping-service.yaml
- tax-service.yaml
- admin.yaml
- frontend.yaml
- 00-plugin-config.yaml
- 01-global-rule.yaml
- 02-routes.yaml
- runner-scale-set.yaml
- apisix.yaml
- elasticsearch.yaml
- kafka.yaml
- keycloak.yaml
- postgres.yaml
- redis.yaml
- rustfs.yaml
- ingress.yaml
- configmap.yaml
- namespace.yaml
- secrets.yaml
- maven-wrapper.jar
- maven-wrapper.properties
- SecurityConfig.java
- YasConfig.java
- MediaController.java
- MediaVmMapper.java
- MediaDto.java
- Media.java
- MediaRepository.java
- MediaService.java
- MediaServiceImpl.java
- FileTypeValidator.java
- StringUtils.java
- ValidFileType.java
- ErrorVm.java
- MediaPostVm.java
- MediaVm.java
- NoFileMediaVm.java
- MediaApplication.java
- changelog-0001.sql
- db.changelog-master.yaml
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- CommonConfiguration.java
- ReactiveKafkaAppProperties.java
- AppConstant.java
- KafkaConstant.java
- EmailController.java
- NotificationController.java
- PaymentController.java
- EmailDetails.java
- EmailSender.java
- OrderDto.java
- PaymentDto.java
- Notification.java
- Payment.java
- PaymentStatus.java
- EventConsumer.java
- EventProducer.java
- PaymentMappingHelper.java
- NotificationRepository.java
- PaymentRepository.java
- EmailServiceImpl.java
- NotificationServiceImpl.java
- PaymentServerImpl.java
- EmailService.java
- NotificationService.java
- PaymentService.java
- NotificationServiceApplication.java
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- AppConstant.java
- CartController.java
- OrderController.java
- CartDto.java
- OrderDto.java
- CategoryDto.java
- ProductDto.java
- DtoCollectionResponse.java
- UserDto.java
- AbstractMappedEntity.java
- Cart.java
- Order.java
- RoleName.java
- ExceptionMessage.java
- CartNotFoundException.java
- JwtAuthenticationException.java
- OrderNotFoundException.java
- CartMappingHelper.java
- OrderMappingHelper.java
- CartRepository.java
- OrderRepository.java
- JwtTokenFilter.java
- CartServiceImpl.java
- OrderServiceImpl.java
- CallAPI.java
- CartService.java
- OrderService.java
- OrderServiceApplication.java
- db.changelog-master.yaml
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- CommonConfiguration.java
- ReactiveKafkaAppProperties.java
- AppConstant.java
- KafkaConstant.java
- PaymentController.java
- DtoCollectionResponse.java
- KafkaPaymentDto.java
- OrderDto.java
- PaymentDto.java
- ProductDto.java
- UserDto.java
- AbstractMappedEntity.java
- Payment.java
- PaymentStatus.java
- EventConsumer.java
- EventProducer.java
- ExceptionMessage.java
- PaymentNotFoundException.java
- PaymentMappingHelper.java
- HeaderGenerator.java
- PaymentRepository.java
- JwtTokenFilter.java
- PaymentServiceImpl.java
- CallAPI.java
- PaymentService.java
- PaymentServiceApplication.java
- db.changelog-master.yaml
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- SecurityConfig.java
- AppConstant.java
- CategoryController.java
- ProductController.java
- DtoCollectionResponse.java
- CategoryDto.java
- ProductDto.java
- AbstractMappedEntity.java
- Category.java
- Product.java
- ExceptionMessage.java
- CategoryNotFoundException.java
- ProductNotFoundException.java
- CategoryMappingHelper.java
- ProductMappingHelper.java
- CategoryRepository.java
- CategoryRepositoryPagingAndSorting.java
- ProductRepository.java
- CategoryServiceImpl.java
- ProductServiceImpl.java
- CategoryService.java
- ProductService.java
- ProductServiceApplication.java
- db.changelog-master.yaml
- stage_log.log.2023-11-20.0.gz
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- DatabaseAutoConfig.java
- SecurityConfig.java
- ServiceUrlConfig.java
- PromotionController.java
- BadRequestException.java
- DuplicatedException.java
- NotFoundException.java
- CustomAuditingEntityListener.java
- ApplyTo.java
- DiscountType.java
- UsageType.java
- AbstractAuditEntity.java
- Promotion.java
- PromotionApply.java
- PromotionUsage.java
- PromotionRepository.java
- PromotionUsageRepository.java
- AbstractCircuitBreakFallbackHandler.java
- ProductService.java
- PromotionService.java
- Constants.java
- MessagesUtils.java
- PromotionConstraint.java
- PromotionValidator.java
- ErrorVm.java
- BrandVm.java
- CategoryGetVm.java
- ProductVm.java
- PromotionDetailVm.java
- PromotionDto.java
- PromotionListVm.java
- PromotionPostVm.java
- PromotionPutVm.java
- PromotionVm.java
- PromotionApplication.java
- changelog-0001.sql
- changelog-0001.sql
- changelog-0002.sql
- db.changelog-master.yaml
- messages.properties
- application.yml
- banner.txt
- org.mokito.plugins.MockMaker
- logback-spring.xml
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- DatabaseAutoConfig.java
- SecurityConfig.java
- ServiceUrlConfig.java
- RatingController.java
- AccessDeniedException.java
- BadRequestException.java
- NotFoundException.java
- ResourceExistedException.java
- CustomAuditingEntityListener.java
- AbstractAuditEntity.java
- Rating.java
- RatingRepository.java
- AbstractCircuitBreakFallbackHandler.java
- CustomerService.java
- OrderService.java
- RatingService.java
- Constants.java
- MessagesUtils.java
- CustomerVm.java
- ErrorVm.java
- OrderExistsByProductAndUserGetVm.java
- RatingListVm.java
- RatingPostVm.java
- RatingVm.java
- ResponeStatusVm.java
- RatingApplication.java
- changelog-0001.sql
- changelog-0001.sql
- changelog-0002.sql
- db.changelog-master.yaml
- messages.properties
- application.yml
- banner.txt
- org.mockito.plugins.MockMaker
- logback-spring.xml
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- ElasticsearchDataConfig.java
- ImperativeClientConfig.java
- SecurityConfig.java
- ServiceUrlConfig.java
- ProductField.java
- SortType.java
- Action.java
- MessageCode.java
- ProductSyncDataConsumer.java
- ProductController.java
- Product.java
- BadRequestException.java
- DuplicatedException.java
- NotFoundException.java
- ProductRepository.java
- ProductService.java
- ProductSyncDataService.java
- MessagesUtils.java
- ErrorVm.java
- ProductEsDetailVm.java
- ProductGetVm.java
- ProductListGetVm.java
- ProductNameGetVm.java
- ProductNameListVm.java
- ElasticsearchApplication.java
- elastic-analyzer.json
- messages.properties
- application.yml
- banner.txt
- org.mockito.plugins.MockMaker
- logback-spring.xml
- test-realm.json
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- wait-for-it.sh
- maven-wrapper.jar
- maven-wrapper.properties
- AppConstant.java
- OrderItemController.java
- OrderItemId.java
- AbstractMappedEntity.java
- OrderItem.java
- DtoCollectionResponse.java
- OrderDto.java
- OrderItemDto.java
- ProductDto.java
- ExceptionMsg.java
- OrderItemNotFoundException.java
- OrderItemMappingHelper.java
- OrderItemRepository.java
- OrderItemServiceImpl.java
- OrderItemService.java
- ShippingServiceApplication.java
- db.changelog-master.yaml
- application.yml
- banner.txt
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- maven-wrapper.jar
- maven-wrapper.properties
- DatabaseAutoConfig.java
- SecurityConfig.java
- ServiceUrlConfig.java
- ApiConstant.java
- MessageCode.java
- PageableConstant.java
- TaxClassController.java
- TaxRateController.java
- BadRequestException.java
- DuplicatedException.java
- NotFoundException.java
- CustomAuditingEntityListener.java
- AbstractAuditEntity.java
- TaxClass.java
- TaxRate.java
- TaxClassRepository.java
- TaxRateRepository.java
- AbstractCircuitBreakFallbackHandler.java
- LocationService.java
- TaxClassService.java
- TaxRateService.java
- Constants.java
- MessagesUtils.java
- ErrorVm.java
- StateOrProvinceAndCountryGetNameVm.java
- TaxClassListGetVm.java
- TaxClassPostVm.java
- TaxClassVm.java
- TaxRateGetDetailVm.java
- TaxRateListGetVm.java
- TaxRatePostVm.java
- TaxRateVm.java
- TaxApplication.java
- changelog-0001.sql
- changelog-0001.sql
- db.changelog-master.yaml
- messages.properties
- application.yml
- banner.txt
- org.mockito.plugins.MockMaker
- logback-spring.xml
- test-realm.json
- .gitignore
- Dockerfile
- mvnw
- mvnw.cmd
- pom.xml
- .dockerignore
- .env
- .gitattributes
- .gitignore
- .whitesource
- docker-compose.yml
- k3d-config.yaml
- k3d-setup.sh
- LICENSE
- Makefile
- pom.xml
- README.md
- renovate.json
- SECURITY.md
- start-ecommerce.bat
- start-ecommerce.sh
# Installation Guide
git clone https://github.com/hoangtien2k3/ecommerce-microservices
Downloads the entire project code from GitHub to your computer.
cd ecommerce-microservices
Moves into the project folder you just downloaded.
2. Docker
Easy Recommended- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
โโโ docker/
Type this command into your terminal and run it.
โโโ docker-compose.yml # Full-stack local orchestration
Runs the command against the services defined in the compose file.
Pulled directly from this repo's README.
3. Maven (Java)
Medium- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java projects.
- Maven The build tool used for the mvn command.
cd auth-service
This project's files live in a subfolder, so move into it first.
mvn clean install
Installs dependencies and builds the project using Maven.
4. Node.js
Easycd frontend/apps/admin
This project's files live in a subfolder, so move into it first.
npm install
Downloads and installs the libraries listed in package.json.
npm start
Starts the development/run server.
5. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
