Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cankurttekin/shoppingcart

A Web API developed using Spring Boot, Spring Data JPA and Spring Security following Onion Architecture, DDD and design patterns.
https://github.com/cankurttekin/shoppingcart

clean-architecture crud domain-driven-design onion-architecture spring spring-boot webapi

Last synced: about 1 month ago
JSON representation

A Web API developed using Spring Boot, Spring Data JPA and Spring Security following Onion Architecture, DDD and design patterns.

Awesome Lists containing this project

README

        

# Market

A Web API developed using **Spring Boot**, **Spring Data JPA** and **Spring Security** following Onion Architecture and other useful design patterns.

##
- Java 17
- Spring Boot
- Spring Data
- PostgreSQL
- Onion Architecture
- Domain Driven Design
- Unit Testing
- Object Oriented
- Design Patterns


Architecture

## Endpoints

List of endpoints:



GET
/api/products
Retrieve all products
ROLE=EMPLOYEE

POST
/api/products
Create new product
ROLE=MANAGER

GET
/api/products/{id}
Retrieve product by id
ROLE=EMPLOYEE

PUT
/api/products/{id}
Update product by id
ROLE=MANAGER

DELETE
/api/products/{id}
Delete product by id
ROLE=ADMIN

DELETE
/api/products/
Delete all products!
ROLE=ADMIN

GET
/api/products/available
Retrieve all available products
ROLE=EMPLOYEE

###

Tests

## Database
Role and users are in two tables with passwords stored as **bcrytp hash**, primary key being user_id in a members table.


![Screenshot of a db er diagram.](/images/db-diagram.png)