In response to the growing interest in reading among T-Systems collaborators, the web platform "Workshelf" has been created. This application aims to facilitate book lending and exchange among employees to encourage a reading habit. Workshelf allows users to register, exchange, and reserve books, as well as leave ratings and comments on works.
- Programming Language: Java 17
- Framework: Spring Framework 3.0.6
- Dependency Manager: Maven 4.0.0
- Database: MySQL 8.1
- Dependencies: (among others)
spring-boot-starter-data-jpa
spring-boot-starter-security
spring-boot-starter-web
spring-boot-devtools
spring-boot-starter-tomcat
spring-boot-starter-test
spring-security-test
springdoc-openapi-starter-webmvc-ui
jwt-api
,jwt-impl
,jwt-jackson
json
,mysql-connector-j
,lombok
,hibernate-validator
- Framework: Angular 17
- Dependency Management: npm
- Styling and Layout: CSS, HTML, Bootstrap
- Backend: Railway
- Frontend: AWS Amplify
- Heroku
- Eclipse
- Visual Studio Code
- GitHub
-
Unregistered Users: Can search for books, view the list of books, and see details of each book. They can also register in the application.
-
Registered Users (USER_ROLE): Have full access to the application, including CRUD of their profile, searching for books and users, book reservations, rating and commenting on reserved books, and CRUD of their own books.
-
Administrators (ADMIN_ROLE): In addition to the functions of registered users, administrators can modify and delete all books, as well as manage the deletion of comments and users.
-
Frontend Repository: GitHub - Workshelf Frontend
-
Backend Repository: GitHub - BackendWorkshelf
The MySQL database of "Workshelf" is essential for managing information related to books, users, editorials, ratings, and reservations.
- Database: MySQL Workshelf
The data model defines the structure of the application, organizing information into tables such as Editorials, Users, Books, Ratings, and Reservations. These tables are interrelated to efficiently capture key information.
The reservation and return management allows registered users to reserve books, with details such as reservation duration and the ability to mark books as "recovered" once returned.
The application has three user roles: Unregistered User, Registered User (USER_ROLE), and Administrator (ADMIN_ROLE). Each role has specific functions to ensure a personalized and secure experience.
For detailed information on functionalities and roles for each user, refer to the corresponding section in the project's full documentation.