Skip to content

A backend for a travel agency site developed using Spring Boot.

License

Notifications You must be signed in to change notification settings

artsol0/TravelAgency-SpringBoot-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Travel Agency

Content

Overview

This is a full-stack web application that helps users explore and book travel tours with ease. The application includes functionalities such as user registration, voucher management, order processing, and payment handling. It supports authentication via JWT as well as OAuth2 integration with Google for a seamless login experience. The system is designed following REST API principles to ensure efficient communication between the frontend and backend services. The backend is built using Spring Boot 3, while the frontend is implemented using Angular 17.

Features

  • User Registration and Authentication: Users can register accounts and log in to them with JWT or Google OAuth2.
  • 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.
  • Voucher Searching: Users can search for voucherss by various attributes and keywords.
  • Order Management: Users can create, pay for orders, and receive ordered vouchers in PDF format.
  • Integration with Stripe payment service: Users can increase their balance via Stripe.
  • Brute force protection: System limit failed login attempts.

Database ERD

Trabel-Agency-ERD

Technologies Used

Backend

  • Spring Boot 3
  • Spring Security 6 with JWT Authentication & Google OAuth2
  • Spring Data JPA
  • Spring Validation
  • PostgreSQL Driver
  • H2 Database
  • Thymeleaf
  • Java Mail Sender
  • Mockito with JUnit 5
  • Lombok
  • Swagger
  • html2pdf
  • Mapstruct
  • Stripe payment
  • Google zxing
  • AOP Logging

Frontend

  • Angular 17
  • Bootstrap 5

License

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