Skip to content

A backend for a book sharing site developed using Spring Boot.

License

Notifications You must be signed in to change notification settings

artsol0/BookSwap-SpringBoot-Backend

Repository files navigation

BookSwap

Content

Overview

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.

Features

  • 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.

Database ERD

BookSwap-ERD Created with dbdiagram.io

Note

The list of countries and their cities is retrieved using the Country State City API. To use it, you need to request your own API key via the link on the site.

Technologies Used

Backend

  • 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
  • OpenAPI
  • Docker

Frontend

  • Angular 17
  • Tailwind CSS
  • SockJS
  • Angular Materil Library

License

This project is licensed under MIT License. See the LICENSE file for details.