Skip to content

ssshanaka/vehicle-bidding-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

160 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Vehicle Bidding System (VBS)

Java Spring Boot MS SQL Server WebSockets JWT Auth

A modern, high-performance, real-time online vehicle auction and bidding platform. Built using Spring Boot, MS SQL Server, and WebSockets, it provides a seamless, secure, and interactive marketplace for buyers and sellers to list, inspect, and bid on second-hand and reconditioned vehicles.


🌟 Key Features

  • 🔐 User & Session Management

    • Role-based access control (RBAC) with dedicated roles: Buyer/Seller, Admin Officer, Sales Manager, Customer Service Executive, Vehicle Inspector, and IT Consultant.
    • Secure, stateless authentication powered by JWT tokens.
    • Built-in password recovery/reset flows and rate-limiting.
  • 🚘 Vehicle Listing Management

    • Detailed listing workflow with validated attributes (make, model, year, engine capacity, mileage, and condition).
    • Multiple image uploads and asset management.
    • Inspection flow for inspectors to verify vehicle details for maximum platform integrity.
  • ⚡ Real-Time Bidding

    • Live interactive bidding experience.
    • Real-time bid updates, timer countdowns, and instant winner notifications powered by WebSockets.
    • Anti-snipe protection (automatic bidding period extension for late-second bids).
  • 🛡️ Admin & Moderation Dashboard

    • Listing approval, rejection, and moderation queue.
    • User account management, banning (temporary/permanent), and security logs.
    • Comprehensive transaction audit trails.
  • 📊 Reports & Notifications

    • Automated email notifications for bidding activity, outbid warnings, and winner confirmations.
    • Dynamic report generation for auction performance and platform statistics.

🛠️ Tech Stack

  • Backend Framework: Java Spring Boot (v3.5+)
  • Database: Microsoft SQL Server (MS SQL)
  • Frontend Engine: Thymeleaf, HTML5, Vanilla CSS3, Javascript (ES6), Bootstrap 5
  • Real-time Engine: Spring WebSocket & SockJS (STOMP Protocol)
  • Security Layer: Spring Security, JWT (Json Web Token)
  • Mailing Service: JavaMail Sender (SMTP integration)

📂 Project Structure

vehicle-bidding-system
├── .mvn/                         # Maven wrapper configuration
├── src/
│   ├── main/
│   │   ├── java/com/sliit/vehiclebiddingsystem/
│   │   │   ├── config/           # Application & Security configurations
│   │   │   ├── controller/       # Web and REST Controllers
│   │   │   ├── converter/        # Entity attribute converters
│   │   │   ├── dto/              # Data Transfer Objects
│   │   │   ├── entity/           # JPA Database Entities
│   │   │   ├── exception/        # Global Exception Handlers
│   │   │   ├── repository/       # Database Repositories (Spring Data JPA)
│   │   │   ├── security/         # JWT Filters & Access Handlers
│   │   │   └── service/          # Core Business Logic & Decorators
│   │   └── resources/
│   │       ├── static/           # CSS, JS, and UI Images
│   │       ├── templates/        # Thymeleaf HTML Templates
│   │       └── application.properties # Server and Database Config
│   └── test/                     # Unit & Integration Tests
├── pom.xml                       # Maven dependency tree configuration
└── README.md                     # Project Documentation

🚀 Getting Started

📋 Prerequisites

Ensure you have the following installed on your system:

  • Java JDK 17 or higher
  • Microsoft SQL Server (running locally or remotely)
  • Maven (optional, wrapper script ./mvnw is included)

⚙️ Database Setup

  1. Create a database named vehicle-bidding-system.
  2. Configure a database user with read/write and schema modification privileges.
  3. Update src/main/resources/application.properties with your credentials:
    spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=vehicle-bidding-system;encrypt=true;trustServerCertificate=true
    spring.datasource.username=YOUR_USERNAME
    spring.datasource.password=YOUR_PASSWORD

🏃 Running the Application

To run the server locally on port 8010:

# Windows
./mvnw.cmd spring-boot:run

# Linux / macOS
./mvnw spring-boot:run

Access the app via your browser at http://localhost:8010.

🧪 Running Tests

To run unit and integration tests (including Spring Application Context loads):

# Windows
./mvnw.cmd test

# Linux / macOS
./mvnw test

About

The Web-based Vehicle Bidding System is an online auction platform developed for Lanka Auto Traders (Pvt) Ltd as part of the SE2030 Software Engineering course at the Sri Lanka Institute of Information Technology (SLIIT), Year 2, Semester 1, 2025.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors