BookSwap is a full-stack application that provides users with the ability to comfortably exchange books. The application offers functionalities such as user registration, book management, writing revievs, exchange approval, one-on-one chatting, profile and wishlist management. It is designed using REST API principles for efficient communication between the frontend and backend, and JWT tokens for secure authentication. The backend is developed using Spring Boot 3, while the frontend is developed using Angular 17.
- User Registration and Authentication: Users can register accounts and log in to them.
- Email Confirmation: Accounts are activated after confirming email via a received link.
- Password Recovery: Users can reset their password if forgotten via a link received in their email.
- Book Searching: Users can search for books by various attributes (genre, language, quality, status) and keywords.
- Book Management: Users can create, update, and delete their own books.
- Writing Revievs: Users can add their reviews to books.
- Wishlist Management: Users can add books to their wishlist and remove them.
- One-on-One Chatting: Users can chat with each other directly.
- Profile Management: Users can change their avatar, password, or location.
- Exchange Approval: Users can send exchange offers to each other and confirm or delete them.
- Angular 17
- Tailwind CSS
- SockJS
- Angular Materil Library
- Spring Boot 3
- Spring Security 6 with JWT Token Authentication
- Spring Web
- Spring Data JPA
- Spring WebSocket
- Spring Validation
- MySQL Driver
- H2 Database
- Thymeleaf
- Java Mail Sender
- Mockito with JUnit 5
- Lombok
This project is licensed under MIT License. See the LICENSE file for details.