This project was created to make the life of a bookstore owners easier via development of well-thought-out management system. Simultaneously, clients of the bookstore would enjoy online shopping using easy navigation tools through the variety of books represented in the store.
During development of the project were used such technologies and tools as:
- Spring Boot,
- Spring Boot Security,
- Spring Data JPA,
- Liquibase,
- Soft deleting,
- GlobalExceptionHandler,
- Data Validation,
- Pagination and sorting,
- Swagger,
- Docker,
- Spring Boot Testing,
- Mockito,
- Postman.
Allows unauthorised users to register on the site.
Allows registered users to log into the site.
Shows all books from the database. Available to users with the role USER.
Shows a book by id if it is present in the database. Available to users with the role USER.
Allows to create a new book in the database. Available to users with the role ADMIN.
Allows to update information about a particular book in the database. Available to users with the role ADMIN.
Allows to delete a book from the database. Available to users with the role ADMIN.
Shows all book categories from the database. Available to users with the role USER.
Shows a book category by id if it is present in the database. Available to users with the role USER.
Shows all books by book category id if it is present in the database. Available to users with the role USER.
Allows to create a new book category in the database. Available to users with the role ADMIN.
Allows to update information about a particular book category in the database. Available to users with the role ADMIN.
Allows to delete a book category from the database. Available to users with the role ADMIN.
Shows a shopping cart of the logged-in user. Available to users with the role USER.
Allows to add an item to the shopping cart of the logged-in user. Available to users with the role USER.
Allows to update quantity a particular item in the shopping cart of the logged-in user. Available to users with the role USER.
Allows to delete a particular item in the shopping cart of the logged-in user. Available to users with the role USER.
Shows history of all orders made by logged-in user. Available to users with the role USER.
Allows to place an order with the shopping cart content of the logged-in user. Available to users with the role USER.
Allows to view all items in the particular order of the logged-in user. Available to users with the role USER.
Allows to view a particular order item in the particular order of the logged-in user. Available to users with the role USER.
Allows to update status of the order. Available to users with the role ADMIN.
- prerequisites: install the Docker, JDK, Maven,
- clone project repository,
- build the project by using
mvn clean package
, - start the application by running
docker-compose up
, - work with application using REST API via the tool of your choice (ex. Postman).
- extra functionality could be added, for instance, search for a book by its name
- test coverage could be improved by adding test cases for repository, service, and controller layers
- the project needs to be deployed to the AWS
You are welcome to contribute to this project by commenting code at hands and sharing your ideas for improvement