img
gradient

Advanced Real-time Auction System (BidOut)

Written by Upeksha Indeewara

🧰 Frameworks and Libraries

  • Frontend 🖥️: Vite, React, Tailwind CSS, Framer Motion

  • Backend ⚙️: C# (ASP.NET)

  • Stripe 💸: Payment integration via @stripe/stripe-js

Repositories


📘 Introduction of BidOut

BidOut is an innovative online platform designed to bring the excitement of live auctions to the web, making it easy for users to both bid on and list valuable items for sale. The platform combines an intuitive, user-friendly interface with secure transactions, creating a trustworthy environment for users. BidOut’s frontend features allow users to browse auctions, place bids, and manage accounts, with listings that provide detailed item descriptions, images, and starting bids. A real-time bidding system ensures users stay engaged with automatic bid increments, realtime notifications, and countdown timers. To further enhance the experience, payment gateway like Stripe are integrated for secure, streamlined transactions.

For BidOut’s frontend development, we used React, Tailwind CSS to create a dynamic, responsive user experience. react provided the structure, enabling a clean and accessible design, while CSS and Tailwind allowed us to add visual styling that enhanced user engagement. React was essential for building interactive components, like the real-time bidding system and auction listings, ensuring smooth updates and fast rendering. This combination of technologies enabled us to develop a user-friendly interface that’s both visually appealing and functionally robust, offering a seamless experience across devices.

Supporting BidOut’s frontend is a robust backend built on C# ASP.NET Web API, with a MySQL database for storing auction details, user profiles, bid histories, and transaction records. RESTful APIs handle everything from creating and updating auctions to processing bids, ensuring reliable data flow between the frontend and backend. Security measures, including role-based access control and data encryption, safeguard users’ data and transactions, while reporting and analytics capabilities help users track auction performance and their previous bids.

For BidOut’s backend testing, we used Insomnia and Swagger to ensure our APIs were reliable and efficient. Insomnia allowed us to test endpoints thoroughly, checking data handling and response accuracy, while Swagger provided an interactive interface for exploring and documenting each function. Together, these tools helped us refine the backend, ensuring smooth and secure interactions between the client and server.

External services enhance BidOut’s functionality even further, with email notifications to keep users updated on bid confirmations and auction statuses, social media integration for auction sharing, and a fully responsive design for smooth access on any device. Key development tasks focused on client application creation, backend API development, and rigorous testing to ensure BidOut provides a reliable, seamless experience for all users.

With BidOut, users have a dynamic, responsive, secure auction management system that combines modern web technologies and thoughtful design. This report details the system's architecture, design patterns, and development approach, underscoring BidOut's commitment to quality and user satisfaction.


🏗️ System Architecture

BidOut is a secure and transparent auction system designed to prevent fraudulent bidding behavior. To participate in any auction, each user must pay an upfront fee equivalent to 10% of the auction's starting value. This fee serves as a commitment to discourage fake or non-serious bids.

Once the first bid is placed, all subsequent bids must be at least $10 higher than the previous bid. The user with the highest bid at the end of the auction is declared the initial winner and is given 24 hours to complete the payment. If they successfully make the payment within this time, the auction is finalized in their favor, and their 10% upfront fee is fully refunded.

However, if the highest bidder fails to complete the payment within the 24-hour window:

  • They are removed from the auction.

  • Their 10% upfront fee is not refunded.

  • All of their lower bids are automatically canceled.

  • The opportunity to purchase is passed to the second-highest bidder.


The second-highest bidder will then be given their own 24-hour payment window. If they fail to pay, their upfront fee is also forfeited, their bids are canceled, and the process moves to the third-highest bidder, and so on.

This cycle continues until a bidder completes the payment within the allocated time and is officially declared the winner of the auction.


🔁 Swagger API Routes

imageimage

📦 DTOs (Data Transfer Objects)

imageimageimage

🗂️ ER Diagram (Entity-Relationship Diagram)

image

🖼️ User Interface (UI)

imageimageimageimageimageimage

(After won the auction user can purchase the items)

imageimageimage

(Real-time Notifications for user actions)



image

(Real-time Notifications from other user's actions)



image

🌍 Open Source

We’ve made BidOut to help other developers learn and build from our experience. (Documentations and configurations are included)

🗂️ Frontend Repository(React)
🗂️ Backend Repository (C#,.net)


🧑‍💻 Team Contribution

Student ID

Name

GitHub Username

27292

GUI Perera (Leader)

@upekshaip

27601

SWKR Pinsiri

@Kavindu-R

27578

MJM Shaahid

@MShaahid

27958

MCA Jayasingha

@ChethakaJayasingha

27176

Weerathunga KTN

@WeerathungaKTN

27177

Weerathunga KTS

@WeerathungaKTN