Skip to content

ixgnoy/TravelNow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CSC3402_Project

🌍 TRAVEL.NOW

Empowering seamless travel bookings with modern web technologies.

last-commit repo-top-language repo-language-count Visitors


✨ Features

  • βœ… User Authentication & Authorization
  • πŸ› οΈ Admin-side CRUD for:
    • Packages
    • Bookings
    • Users
  • ✏️ User-side CRUD for:
    • Booking
    • Payment
  • 🧩 Package Listings
  • πŸ•’ Booking Sessions
  • πŸ’³ Payment Integration
  • πŸ€– AI-Powered Chatbot Features:
    • Real-time user assistance
    • Context-aware conversation powered by Gemini API
    • User-friendly chat interface
    • Collects user information and provides personalized responses
  • πŸ’¬ Real-time User Interaction & Support via Chatbot
  • πŸ”„ Seamless Integration between Chatbot and Backend Services

🧠 Skills & Tech Stack

πŸ§‘β€πŸ’» Front-End

HTML5 CSS3 JavaScript Bootstrap Thymeleaf

β˜• Back-End

Java Spring Boot Spring Security Spring Web Spring Data JPA Node.js
Gemini API

πŸ—ƒοΈ Database

H2 MySQL

πŸ› οΈ Tools & Utilities

Maven Postman Validation API Figma


🧩 System Design & Architecture

  • 🧬 Database Design (ERD)

  • πŸ— Application Design using MVC Architecture

  • ERD is as below:


The Architecture Diagram:


Relationship is as below:

  • One-to-Many Relationship between User and Book (one user can make multiple bookings).
  • One-to-One Relationship between Book and Payment (one booking can have only one payment).
  • One-to-One Relationship between Book and Package (one booking can be within only one package).

Latest Feature:

- Implemented Intelligent Chabot using Gemini API (Flash 2.0 Model) with restricted safety feature to avoid offensive language:
- I chose to use a Microservice Architecture with Node.js to build the chatbot using the Gemini API because it allows for better scalability, modularity, and easier maintenance. By isolating the chatbot functionality into a separate microservice, it becomes independent from the main application, making it easier to update, debug, and scale as needed. Node.js is ideal for this setup due to its non-blocking, event-driven nature, which enables efficient handling of API requests and real-time communication. This approach also keeps the system flexible and allows other parts of the platform to interact with the chatbot via a simple API call.


Demonstration is as below: 1. Login when you're a registered user:
(https://youtu.be/umv8zJHvv3A "Database Web Dev Demo Video")
  1. Register a new account when you're a new user of Travel.Now:
    (https://youtu.be/Gby6tjzD_EU "Database Web Dev Demo Video of Register A New Account")

  2. Accessing the H2 Database:
    (https://youtu.be/7N39x59Ddkw "Database Web Dev Demo Video of Accessing H2 Db")

About

An e-commerce traveling website (Travel.Now) with the chatbot that's using Gemini-API [Java SpringBoot]

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors