Tuesday, July 21, 2015

thought-works: Object oriented design for an online auction site



thought-works: Object oriented design for an online auction site
Typical set of operations on the online auction site from the user perspective are

  • Users should register themselves and sign in to participate or start auctions in the online auction site. 
  • A user can create a new item category to be auctioned in the site or else he can search ongoing auctions on the item and participate in one or more of these auctions simultaneously. 
  • Upon participating in auction he/she can place the bids.
  • He/she can come out of the auction at any time.
  • If he wins the auction by placing the highest bid, he has to pay the bid price to the payment sub system
  • If he is the owner of the auction which was complete with a winner, he should send the items to the delivery sub system.
Based on the above description the main components of the system would be
User -> can act as bidder/seller
Item -> Things which are sold and bought in the system
Auction -> Process in which seller wants to sell the item
Bid -> users quotes for the item being sold
Auctioneer -> one who oversees the process of start, stop and conducts the whole process
PaymentHandler -> component which accepts the payments from winning bidder and transfers the payment to the seller


Based on the above description this is the class diagram of the system:



Read full article from thought-works: Object oriented design for an online auction site

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts