rShop is a REST API being built essentially with Spring Boot, with the purpose of learning some of the Spring ecosystem projects and others related to the development of REST APIs, as well as maintaining a reference repository of problem solutions, organization and good development practices. I plan to convert it to microservices architecture soon.
The project still doesn't have a concrete idea of its scope, requirements and business rules, so at the moment it only has a few features close to an E-commerce, but it can evolve into anything else.
Initially I had plans to simultaneously build a React application to consume this API, but the project is paused for now, the current project code and UI prototype can be found here: GitHub Repository | Figma prototype
- Java 11
- Maven 3.8.1
- Spring Boot 2.7.0
- SonarQube 8.9.9-community
- Docker 4.9.0
- MySQL server 8.0.29
- SpringDoc-openapi 1.6.9
- Testcontainers 1.17.2
- SendGrid 4.7.6
- Flyway 8.0.5
- Project Lombok 1.18.22
- MapStruct 1.5.1.Final
- Amazon S3
- JUnit 5
- Mockito 4
- Authorization with OAuth 2.0
- Category, Role, Privilege, Product and User CRUD
- Image Upload using Amazon S3
- Java ^11 (full JDK not a JRE)
- Maven ^3.8.1
- Docker ^4.9.0 (Recommended) or a local MySQL server ^8.0.29
-
On the command line, clone the repository
git clone https://github.com/roanrobersson/rshop-be
-
Enter the project folder
cd rshop-be
-
Download and install the MySQL server 8.0.29 or run it in a Docker container:
- If you prefer install the MySQL server: Download MySQL
- If you prefer a Docker container, on the command line run this command:
docker run --name MySQL-rShop -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true -d mysql:8.0.29
-
Execute the project
mvn spring-boot:run
You can then access rshop API here: http://localhost:8080
API documentation with Swagger UI: http://localhost:8080/swagger-ui/index.html
- Use Postman to send rShop API requests
- Work with rShop on Spring Tool Suite IDE
- Inspect code quality with SonarQube
- Run integration tests using Testcontainers
Back to top ^