Service for creating and managing any kind of orders.
- Java 11
- PostgreSQL
- Docker
To run in a Docker
use next follows:
git clone https://github.com/SadCryFamily/Shopify.git
cd Shopify
./mvnw package -DskipTests
docker-compose build
docker-compose up -d
Notice
If you don't want to skip tests - create and setup the testable PostgreSQL
before tests will be compeleted
docker run -d -p 4455:5432 --name=postgres_test -e "POSTGRES_USER=postgres" -e "POSTGRES_PASSWORD=test" -e "POSTGRES_DB=test" postgres;
To run at IDE
locally - clone repository to your local machine and open in IDE.
git clone https://github.com/SadCryFamily/Shopify.git
-
Adding Goods
Managers can effortlessly add new goods to the database, specifying product details such as name, price, and initial stock quantity.
-
Listing Available Goods
Both managers and clients have access to a comprehensive list of available goods, complete with their prices and current stock quantities.
-
Automatic Order Cleanup
To manage risks efficiently, the application automatically deletes unpaid orders ten minutes after their creation. This feature ensures that the database remains clutter-free and up-to-date.
-
Payment Processing
Clients can easily pay for their orders through a dedicated endpoint, marking their orders as paid.
- Java 11
- PostgreSQL
- Liquibase
- Spring Data
- Spring Boot
- Spring Security
- Docker
Endpoints marked as *
only authorized access only. Endpoints marked as M
only Moderator can access.
/signup
- create new Client.
/signin
- login Client and provide JWT.
M*/add-order
- create new Order.
*/orders
- list of all available orders to buy.
*/place-order
- set Order as customer property.
*/pay-order
- pay already placed customer order.
M*/moderation/clients
- get all customer with authorities.
M*/moderation/grant
- grant specified customer with new role.
M*/moderation/descent
- descent specified customer a moderator role.