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.
-
🔐 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.
- 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)
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
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
./mvnwis included)
- Create a database named
vehicle-bidding-system. - Configure a database user with read/write and schema modification privileges.
- Update
src/main/resources/application.propertieswith 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
To run the server locally on port 8010:
# Windows
./mvnw.cmd spring-boot:run
# Linux / macOS
./mvnw spring-boot:runAccess the app via your browser at http://localhost:8010.
To run unit and integration tests (including Spring Application Context loads):
# Windows
./mvnw.cmd test
# Linux / macOS
./mvnw test