/BookSwap-Angular-Frontend

A frontend for a book sharing site developed using Angular.

Primary LanguageTypeScriptMIT LicenseMIT

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.

Some UI Previews

Book search page

books_search

Book profile page

book_page

User exchanges page

exchanges-page

Technologies Used

Frontend

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

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

License

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