Overview
Syllabus
Intro
About the application
The application features
Used technologies
The frontend technologies
What comes next?
Source code
Business requirements
Design the class diagram
The mono repo approach
Create a new Spring boot project
Add final dependencies
Prepare the infrastructure with Docker Compose
Configure the project
Spring security Overview
Create the user entity
Create the Role entity
Implement user and role repositories
Create the Token entity and repository
Implement the security configuration class
Implement the Authentication provider
Implement the User details Service
Implement the JwtFilter class
Implement the JwtService class
Finalize the JwtFilter class
Create the authentication controller
Implement the register method
Implement the Email sender service
Test the registration
Implement the login method
Implement the activate account method
Test the full authentication flow
Exception handling
Create the Book entity
Create the Feedback entity
Use inheritance and refactor the code
Create the BookTransactionHistory entity
Add the relationships between the entities
Add the application auditor aware:: Auditing
Implement the save book method
Implement the find book By Id
Implement the find all displayable books
Implement find all books by owner
Implement the find all borrowed books
Implement the find all returned books
Implement update books shareable status
Implement update book archived status
Implement borrow book feature
Implement return borrowed book
Implement approve book return
implement book cover picture upload
Read the file from a given location
Implement save feedback
implement Find all feedbacks
Include OpenApi documentation
Implement find all feedbacks
Create the Angular project and install the dependencies
Generate the HTTP Services using the power of OpenApi
Implement the Login page
Implement the Registration page
Implement the activate account Page
Create the book module
Create the main page
Implement the menu component
Implement the book list page part 1
Inject the jwt token using an HTTP interceptor
Implement the book card component
Implement the rating component
Implement the pagination
Implement the borrow action
Implement the My book page
Implement the create book method
Implement update a book
Implement Share feature
Implement Archive book feature
Implement the return borrowed book page
Implement returned book page
Secure the routes with Auth Guard
Implement the logout
Outro
Taught by
Bouali Ali