eAuction
Real-time auction application
A web application where participants can place auction bids and see updated bids immediately.
- Who is it for?
- Auction bidders and users listing products
- My contribution
- Personal project · Software development
- Period
- 2023
The need to solve
Bid and closing information must stay current across users, with background tasks completing the auction’s closing workflow.
What it enables
The application updates bid amounts, bid counts and closing times live, with closing notifications and order creation tasks.
What I built
I developed product, bidding and user flows across a React client and Django API, connecting real-time broadcasts with closing tasks.
Application screens
From auction discovery to the live bidding panel, bid history and listing workflow: explore eAuction through the real web interface.
Explore development details
For readers interested in the technical approach: workflows, technologies and implementation decisions.
How does the process work?
Auctions span product discovery, live bidding and closing tasks. WebSocket updates and scheduled jobs have distinct responsibilities.
Main flow
Open a user session
Verify the client identity through OAuth and user flows.
Explore the product and auction
The React / Redux interface loads product, bid and closing information from the API.
Prepare a bid amount
Compare starting and existing bids and calculate the additional payment.
Persist the bid
The DRF API saves the bid linked to its user and product.
Broadcast the live update
Django Channels / Redis publishes a WebSocket event to the product’s auction group.
Update participant screens
Refresh the bid amount, bid count and closing time in the live interface.
Process closing with a scheduled task
Celery checks expired auctions and determines the highest bid.
Notify participants and create the order
If bids exist, send winner / loser notifications and create the winner’s order.
Alternative and supporting processes
When closing approaches
- Find auctions nearing their deadline
Celery checks the closing dates of active auctions.
- Remind participants
Send closing reminder emails to users who placed bids.
When the bid amount is insufficient
- Return a calculation error
Return an error for an amount that does not exceed the starting price or current highest bid.
- Revise the amount
The user can return to the calculation with a new amount.
The approach
- Built product-listing, bidding and user workflows across a Django REST Framework API and React/Redux client, with OAuth 2.0 authentication integration.
- Built auction-scoped WebSocket broadcasts with Django Channels/Redis, updating bid amounts, bid counts and closing times live in the client.
- Developed Celery tasks for closing reminders, winner/loser notifications and order creation when auctions end.
Technologies
- Django REST Framework
- React
- Django Channels
- Redux
- Redis
- Celery
