Skip to content

Auction site (Allegro inspired)


Brief description of the system

As part of the project, a system should be created that allows for the listing and bidding of items. Additionally, the system is to enable the creation of accounts for users and the evaluation of transactions.


Main system functions

  • Home
  • Categories
  • User's account
  • Auctions
  • Auction search
  • Auctions and purchases
  • Transaction Ratings
  • Auction observation

Technologies

  • Spring + Hibernate
  • (optional) Frontend in Angular/React/Thymeleaf

Basic entities (Proposal)


Category

  • name
  • descriptive name
  • logotype/thumbnail (optional)

User's account

  • login (email used for communication and notifications)
  • password
  • account name (presented on the account profile)
  • province
  • city
  • address (street, house number, zip code)
  • date of account creation
  • account status (ACTIVE/INACTIVE/LOCKED)
  • logotype / thumbnail/avatar
  • type (NORMAL/PREMIUM)

Auction

  • title
  • description
  • photos (optional)
  • category
  • minimum amount
  • "buy it now" amount (it disappears if bidding starts)
  • promoted (it can be assumed that a premium account can promote e.g. 10 auctions a month)
  • location (corresponds to the location of the user's account)
  • date of issue
  • end date
  • number of visits (auction page views)

Bidding

  • auction
  • user
  • amount

Purchase (entity corresponding to the highest bidding or Buy Now)

  • auction
  • user
  • amount

Auction observation

  • auction
  • user

Evaluation of the transaction (purchase)

  • purchase
  • seller rating
  • seller's comment
  • buyer's rating
  • buyer comment

Functionalities


Show your home page

  • presentation of categories (main categories - if their structure is tree-like): e.g. a list of links in the left or right column leading to an auction from a selected category
  • presentation of a list of recently added auctions (e.g. 10)
  • presentation of the list of auctions that are ending (e.g. 10)
  • presentation of the list of auctions of user that is logged in (issued)
  • presentation of the list of auctions that a logged in user is bidding on
  • presentation of the list of auctions that are watched
  • presentation of the list of auctions that "just ended" (e.g. 10)
  • (optional) additional auction lists, e.g. the most popular (most auctions or visits)

Selection of the auction category

  • list of categories in which the auctions are placed
  • (optional) the list can be a tree structure with epmpty values; the presentation and search for auctions must take this into account)
  • (optional) category administration (the basic version has predefined categories)

User account management

  • an account creation form
  • page (available after logging in) that allows you to edit your account details
  • there should be a list of auctions which were: watched, listed, auctioned (also lost) and completed (won and those that did not receive the minimum amount)
  • (optional) presentation of ratings and comments from the auction
  • (optional) adding an administrator role who can also block the account

Listing the auctions

  • a form that allows you to place an auction and define its parameters
  • the auction can be canceled (if there was no auction)

  • page presenting auction search results
  • a page which leads to it, e.g. by category links from the home page
  • wherever the name of a category is presented, it should be clickable and lead to the page with the presentation of results
  • additionally, on the results page, you can limit/filter auctions (e.g. by province and city) and sort, e.g. by the date they were added, by the end date of the auction
  • the mechanism must take into account premium auctions and present them "first"
  • (optional) field for entering the auction number or account name: search by number (presents a specific auction), search for a user's auctions (presents a list of his auctions)

Auctions and purchases

  • logged in user can bid at the auction
  • can enter any amount
  • can immediately choose Buy Now
  • You can only bid on ongoing auctions
  • highest bid or buy now becomes Purchasable
  • if the minimum amount has not been reached, there is no winner
  • Attention! For the sake of simplicity, you need to write a mechanism that will be activated at each entry to the site and will "close" auctions that have ended (from the last visit to the site) and select the winners
  • (optional) with the help of the Trainer, you can try to use a Scheduler/Quartz/Cron

Transaction Ratings

  • both the seller and the buyer can leave a review and comment

Auction observation

  • logged in user can add an auction to the watchlist
  • after entering the observed auction, this fact should be marked, e.g. with an text label or a picture of a star

Project development

  • as it stands, the project is quite complex
  • the development of functionality is left to the student (both as an inspiration for existing websites and his/her own ideas)

Additional requirements

  • it is necessary to ensure an aesthetic and functional way of presenting data
  • data downloaded from users should be pre-validated