Skip to content

Steampunk1453/hexagonal-ddd-ecommerce-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

123 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Ecommerce API Backend project to manage the creation of orders for different types of products (stickers, shirts, books...)

Following Hexagonal Architecture (aka Ports and Adapters) / Clean Architecture / DDD / TDD

Technical details

It implements a Domain / Hexagonal approach of a common web application with Java 16 and Groovy for unit and integration tests

Tech stack

  • Java 16
  • Spring Boot
  • Groovy
  • Spock
  • Gradle
  • Swagger
  • Java records

Testing project in local environment

  • How to run project:

    • You need to install Gradle
    • From the root of project
    • Execute gradle bootRun
    • Project uses Swagger for API documentation you can see endpoints info in http://localhost:8080/swagger-ui.html
  • How to test project endpoints:

    • Go to: http://localhost:8080/swagger-ui.html
    • Also, you can use cURL client or Postman
    • Steps:
      • Get products: /products {GET}
      • Create order with a previous productId and quantity: /orders {POST}
      • Add product with a previous orderId, previous productId and quantity: /products {POST}
      • The rest of endpoints follow a similar dynamic receiving as a parameter orderId or/and id
  • How to run project tests:

    • From the root of project
    • Execute gradle test
  • How to build project:

    • From the root of project
    • Execute gradle build
    • Then you can go to /build/libs
    • Execute this command: java -jar hexagonal-ecommerce-api-0.0.1-SNAPSHOT.jar to launch project

Backlog

  • [] Add Spring Security with JWT
  • [] Implement JPA with H2
  • [] Use GitHub Actions
  • [] Add acceptance tests with Cucumber

About

Ecommerce API project following Hexagonal Architecture (aka Ports and Adapters) / Clean Architecture / DDD / TDD using Java 16 & Groovy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors