Course Project: Auction System
This project demonstrates implemention a web-based auction information system that automates the creation and management of auctions, lots, bids, and user roles. The system follows a three-tier architecture and uses the MVC pattern to ensure clear separation of concerns.
Click to expand
Home page demo
Login page demo
Auctions page demo
Create auction page demo
Role-based access: Participant, Recruiter, Administrator
User registration and authentication
Auction creation and editing
Lot management with category assignment
Bidding with automatic validation and balance checks
Winner selection
Role-specific user interface views
Triggers and functions to enforce business rules
Java (Spring Boot)
JavaScript (React)
SQL (PostgreSQL)
Expand
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
username
VARCHAR(30)
NOT NULL, UNIQUE
first_name
VARCHAR(50)
NOT NULL
last_name
VARCHAR(50)
NOT NULL
balance
DOUBLE PRECISION
DEFAULT 0
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
title
VARCHAR(255)
NOT NULL
description
VARCHAR(100)
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
admin_id
INTEGER
NOT NULL, FOREIGN KEY → user(id)
title
VARCHAR(100)
NOT NULL
description
VARCHAR(255)
start_date
TIMESTAMP WITH TIME ZONE
NOT NULL, DEFAULT CURRENT_TIMESTAMP
end_date
TIMESTAMP WITH TIME ZONE
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
auction_id
INTEGER
NOT NULL, FOREIGN KEY → auction(id)
category_id
INTEGER
NOT NULL, FOREIGN KEY → category(id)
amount
DOUBLE PRECISION
DEFAULT 0
title
VARCHAR(100)
NOT NULL
description
VARCHAR(255)
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
lot_id
INTEGER
NOT NULL, FOREIGN KEY → lot(id)
user_id
INTEGER
NOT NULL, FOREIGN KEY → user(id)
description
VARCHAR(255)
NOT NULL
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
lot_id
INTEGER
NOT NULL, FOREIGN KEY → lot(id)
user_id
INTEGER
NOT NULL, FOREIGN KEY → user(id)
amount
DOUBLE PRECISION
NOT NULL
bid_date
TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
Column
Type
Constraints
id
SERIAL
PRIMARY KEY
lot_id
INTEGER
NOT NULL, FOREIGN KEY → lot(id)
user_id
INTEGER
NOT NULL, FOREIGN KEY → user(id)
amount
DOUBLE PRECISION
NOT NULL
Build and Run Instructions
Option 1: Using Docker (Recommended)
Make sure Docker and Docker Compose are installed.
Create a .env file in the root directory based on the provided .env.sample.
Run the application using Docker Compose:
docker-compose up --build
The system will be available at:
Install PostgreSQL and create a new database (e.g., auction)
Execute all SQL files in the init-scripts folder to set up schema, triggers, and roles.
Go to the backend directory.
Create a .env file based on .env.sample.
Run the Spring Boot app:
Navigate to the frontend directory.
Create a .env file based on .env.sample.
Install dependencies and start the React app:
Access