Course Content
Data Structures & Algorithms
Full Stack Web Development
Understanding and playing with DOM (Document Object Model)
0/2
MERN project
0/2
Low Level System Design
LLD Topics
High Level System Design
Fast-Track to Full Spectrum Software Engineering
Class Diagram of PayPal

Class Diagram describes the structure of the system by showing the system’s classes, their attributes, operations (methods), and the relationships among the objects. For PayPal, the diagram illustrates how the core entities like users, accounts, payments, transactions, disputes, and bank details are connected and operate together.



Main Classes and Their Descriptions

User

  • Represents any person who uses PayPal, either as a buyer or a seller.
  • Attributes: userId, name, email, phoneNumber, password, userType
  • Methods: login(), logout(), updateProfile(), verifyIdentity()

 

Account

  • Holds PayPal balance and user’s financial preferences.
  • Attributes: accountId, balance, accountStatus, currency
  • Methods: addFunds(), withdrawFunds(), freezeAccount()

 

Transaction

  • Represents a payment sent or received through PayPal.
  • Attributes: transactionId, amount, status, timestamp, transactionType
  • Methods: processPayment(), refund(), cancel()

 

Payment

  • Specific to a send or receive money operation between two users.
  • Attributes: paymentId, payer, payee, method, referenceNote
  • Methods: initiate(), confirm(), fail()

 

BankAccount

  • Linked to the user for fund withdrawals or top-ups.
  • Attributes: bankId, bankName, accountNumber, routingCode
  • Methods: validateBank(), linkToUser(), unlink()

 

Card

  • Represents credit/debit card linked to a user.
  • Attributes: cardId, cardNumber, cardType, expiryDate
  • Methods: linkCard(), removeCard()

 

Invoice

  • Used by merchants to request payments from customers.
  • Attributes: invoiceId, issueDate, dueDate, amount, status
  • Methods: generateInvoice(), sendToUser(), markPaid()

 

Dispute

  • Created when a buyer or seller has an issue with a transaction.
  • Attributes: disputeId, description, status, raisedBy, resolvedBy
  • Methods: raise(), resolve(), escalate()

 

Admin

  • Admins are responsible for fraud checks and dispute resolution.
  • Attributes: adminId, name, accessLevel
  • Methods: reviewTransaction(), resolveDispute(), blockUser()


Relationships Between Classes

  • User → Account: One-to-One (Each user has one PayPal account)
  • User → Transaction: One-to-Many (A user can have multiple transactions)
  • Transaction → Payment: One-to-One (Every transaction involves a payment)
  • User → BankAccount / Card: One-to-Many (User can link multiple bank accounts/cards)
  • Merchant (User subtype) → Invoice: One-to-Many (Merchants can issue many invoices)
  • Transaction → Dispute: Zero or One (Each transaction may have a dispute)
  • Dispute → Admin: Assigned to resolve (One admin resolves a dispute)


Tips for Teaching Students

  • Emphasize modularity: Each class should do only one major responsibility.
  • Highlight inheritance or association where applicable.
  • Explain Encapsulation using attributes and methods.
  • Use tools like draw.ioUMLet, or StarUML to draw the actual diagram.
  • Explain real-world mappings: e.g., “User” could be you using PayPal to send money.
0% Complete
WhatsApp Icon

Hi Instagram Fam!
Get a FREE Cheat Sheet on System Design.

Hi LinkedIn Fam!
Get a FREE Cheat Sheet on System Design

Loved Our YouTube Videos? Get a FREE Cheat Sheet on System Design.