BidForge is a comprehensive, production-ready full-stack online auction marketplace. It brings together a beautiful, custom React frontend with a robust, highly-concurrent Spring Boot backend.
Whether it's vintage electronics or modern art, BidForge allows users to browse active auctions, track time remaining, and engage in real-time live bidding powered by WebSockets. The price updates instantly for all connected clients without page reloads.
- Live Real-Time Bidding: Powered by Spring WebSockets and STOMP, bids update instantly across all connected browsers.
- Bold Neo-Brutalist UI: A stunning, custom-built React frontend using raw CSS tokens, distinct drop shadows, and sharp borders.
- Secure Authentication: Full JWT-based login, registration, and role-based access control (RBAC).
- Automated Auction Resolution: Scheduled tasks automatically determine and record auction winners when the clock runs out.
- User Profiles: Users can list items, track their won auctions, and manage favorites and reviews.
- High Performance: Designed to handle concurrent bids with data consistency checks and optimized PostgreSQL queries.
- React 18 (Vite)
- Vanilla CSS (Custom Neo-Brutalist Design System)
- React Router for navigation
- StompJS / SockJS for WebSocket connections
- Java 17 & Spring Boot 3
- Spring Security (JWT Auth)
- Spring WebSocket (Live messaging)
- Spring Data JPA (Hibernate)
- PostgreSQL (Relational Data)
- Docker & Docker Compose (Containerization)
- Maven (Build Tool)
| The Marketplace | Secure Authentication |
|---|---|
![]() |
![]() |
(Note: BidForge features a completely custom CSS framework focusing on contrast, legibility, and physical button presses.)
BidForge is neatly organized into two directories: /backend and /frontend.
The backend relies on PostgreSQL. A convenient docker-compose.yml is provided in the root directory.
docker-compose up -dNavigate to the backend directory and run the Spring Boot application using the Maven wrapper.
cd backend
./mvnw spring-boot:runThe backend API will run on http://localhost:8080.
In a new terminal, navigate to the frontend directory, install dependencies, and start the Vite dev server.
cd frontend
npm install
npm run devThe UI will run on http://localhost:5173.
The following diagram illustrates the high-level architecture of BidForge, highlighting how the React client interacts with the Spring Boot backend via REST and WebSockets, and how the backend manages data persistence and caching.
graph TD
Client["💻 Client (React/Vite)"] <-->|"REST (JSON) & WebSocket (STOMP)"| API["🚀 Spring Boot Backend"]
subgraph "Backend Services"
API --> Auth["🔐 Spring Security (JWT)"]
API --> Controllers["📡 REST Controllers"]
API --> Sockets["⚡ WebSocket Broker"]
Controllers --> Service["⚙️ Business Logic Layer"]
Sockets --> Service
Auth --> Service
Service --> JPA["🗄️ Spring Data JPA"]
Service -.->|"@Cacheable (60m TTL)"| CacheConfig["🚀 Redis Cache Manager"]
end
JPA <--> DB[("🐘 PostgreSQL Database")]
CacheConfig <--> Redis[("🔴 Redis In-Memory Store")]
Built by Akshay Kumar Mishra


