# codebysaqi/auction-house architecture

> Architecture diagram of the GitHub repository codebysaqi/auction-house, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/codebysaqi/auction-house
- Repository: https://github.com/codebysaqi/auction-house

## Overview

Auction House Simulator is a Spring Boot marketplace for timed, category-specific auctions. Buyers browse and bid; sellers create auctions for review; expiry determines winners and starts payment release, while notifications report key outcomes. The repository also exposes account/profile, administration, messaging, and support workflows. The graph follows documented capabilities and sampled service/controller behavior; several peripheral routes are represented by their exact controller or service paths, but their internal wiring is not asserted where source excerpts were unavailable.

Main entry points: [`src/main/java/com/auctionhouse/service/PaymentReleaseService.java`](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/PaymentReleaseService.java) (Payment release), [`src/main/java/com/auctionhouse/service/AuctionService.java`](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/AuctionService.java) (Auction lifecycle), [`src/main/java/com/auctionhouse/service/BidService.java`](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/BidService.java) (Bidding engine), [`src/main/java/com/auctionhouse/controller/AdminController.java`](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AdminController.java) (Auction administration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_accounts["Accounts and access"]
  node_auth["Authentication"]
  node_profiles["Profiles"]
  node_user_service["User service<br/>[UserService.java]"]
  node_user_repo["User repository"]
end

subgraph group_auctions["Auction lifecycle"]
  node_home["Auction browsing"]
  node_auction_service["Auction lifecycle"]
  node_bid_controller["Bid submission<br/>[BidController.java]"]
  node_bid_service["Bidding engine<br/>[BidService.java]"]
  node_auction_repo["Auction repository"]
  node_bid_repo["Bid repository<br/>[BidRepository.java]"]
  node_auction_data["Auction records<br/>[Auction.java]"]
end

subgraph group_fulfillment["Payments and communication"]
  node_payment_controller["Payment workflows"]
  node_payment_service["Payment release"]
  node_payment_repo["Payment records"]
  node_commission_repo["Commission records"]
  node_notifications["Notifications"]
  node_chat["Buyer-seller chat<br/>[ChatService.java]"]
  node_support["Support tickets"]
end

subgraph group_operations["Platform operations"]
  node_admin_console["Auction administration"]
  node_super_admin["Platform administration"]
  node_audit["Audit service<br/>[AuditService.java]"]
end

node_visitor(("Buyer or seller"))
node_admin(("Administrator"))
node_database[("H2 database")]

node_visitor -->|"signs in"| node_auth
node_visitor -->|"browses"| node_home
node_visitor -->|"places bid"| node_bid_controller
node_visitor -->|"manages profile"| node_profiles
node_auth -->|"authenticates"| node_user_service
node_profiles -->|"updates account"| node_user_service
node_home -->|"searches auctions"| node_auction_service
node_bid_controller -->|"submits bid"| node_bid_service
node_bid_service -->|"locks auction"| node_auction_repo
node_bid_service -->|"saves bid"| node_bid_repo
node_auction_service -->|"loads and closes"| node_auction_repo
node_auction_service -->|"announces outcomes"| node_notifications
node_auction_service -->|"creates winner release"| node_payment_service
node_admin -->|"moderates"| node_admin_console
node_admin_console -->|"manages auctions"| node_auction_service
node_admin_console -->|"records actions"| node_audit
node_admin -->|"reviews payment"| node_payment_controller
node_payment_controller -->|"handles release"| node_payment_service
node_payment_service -->|"saves and queries"| node_payment_repo
node_payment_service -->|"records commission"| node_commission_repo
node_payment_service -->|"updates seller balance"| node_user_repo
node_payment_service -->|"creates conversation"| node_chat
node_payment_service -->|"notifies parties"| node_notifications
node_visitor -->|"requests support"| node_support
node_visitor -->|"messages seller"| node_chat
node_admin -->|"manages platform"| node_super_admin
node_super_admin -->|"manages accounts"| node_user_repo
node_auction_repo -->|"persists auctions"| node_database
node_bid_repo -->|"persists bids"| node_database
node_user_repo -->|"persists users"| node_database
node_payment_repo -->|"persists releases"| node_database
node_commission_repo -->|"persists commissions"| node_database

click node_auth "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AuthController.java"
click node_profiles "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/ProfileController.java"
click node_user_service "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/UserService.java"
click node_user_repo "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/UserRepository.java"
click node_home "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AuctionController.java"
click node_auction_service "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/AuctionService.java"
click node_bid_controller "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/BidController.java"
click node_bid_service "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/BidService.java"
click node_auction_repo "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/AuctionRepository.java"
click node_bid_repo "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/BidRepository.java"
click node_auction_data "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/model/Auction.java"
click node_payment_controller "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/BuyerPaymentController.java"
click node_payment_service "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/PaymentReleaseService.java"
click node_payment_repo "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/PaymentReleaseRepository.java"
click node_commission_repo "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/PlatformCommissionRepository.java"
click node_notifications "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/NotificationService.java"
click node_chat "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/ChatService.java"
click node_support "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/SupportTicketService.java"
click node_admin_console "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AdminController.java"
click node_super_admin "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/SuperAdminController.java"
click node_audit "https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/AuditService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth,node_profiles,node_user_service,node_user_repo toneBlue
class node_home,node_auction_service,node_bid_controller,node_bid_service,node_auction_repo,node_bid_repo,node_auction_data,node_database toneAmber
class node_payment_controller,node_payment_service,node_payment_repo,node_commission_repo,node_notifications,node_chat,node_support toneMint
class node_admin_console,node_super_admin,node_audit toneRose
class node_visitor,node_admin toneIndigo
```

## Components

### Accounts and access

- [Authentication](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AuthController.java): `src/main/java/com/auctionhouse/controller/AuthController.java`
- [Profiles](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/ProfileController.java): `src/main/java/com/auctionhouse/controller/ProfileController.java`
- [User service](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/UserService.java): `src/main/java/com/auctionhouse/service/UserService.java`
- [User repository](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/UserRepository.java): `src/main/java/com/auctionhouse/repository/UserRepository.java`

### Auction lifecycle

- [Auction browsing](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AuctionController.java): `src/main/java/com/auctionhouse/controller/AuctionController.java`
- [Auction lifecycle](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/AuctionService.java): `src/main/java/com/auctionhouse/service/AuctionService.java`
- [Bid submission](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/BidController.java): `src/main/java/com/auctionhouse/controller/BidController.java`
- [Bidding engine](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/BidService.java): `src/main/java/com/auctionhouse/service/BidService.java`
- [Auction repository](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/AuctionRepository.java): `src/main/java/com/auctionhouse/repository/AuctionRepository.java`
- [Bid repository](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/BidRepository.java): `src/main/java/com/auctionhouse/repository/BidRepository.java`
- [Auction records](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/model/Auction.java): `src/main/java/com/auctionhouse/model/Auction.java`

### Payments and communication

- [Payment workflows](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/BuyerPaymentController.java): `src/main/java/com/auctionhouse/controller/BuyerPaymentController.java`
- [Payment release](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/PaymentReleaseService.java): `src/main/java/com/auctionhouse/service/PaymentReleaseService.java`
- [Payment records](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/PaymentReleaseRepository.java): `src/main/java/com/auctionhouse/repository/PaymentReleaseRepository.java`
- [Commission records](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/repository/PlatformCommissionRepository.java): `src/main/java/com/auctionhouse/repository/PlatformCommissionRepository.java`
- [Notifications](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/NotificationService.java): `src/main/java/com/auctionhouse/service/NotificationService.java`
- [Buyer-seller chat](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/ChatService.java): `src/main/java/com/auctionhouse/service/ChatService.java`
- [Support tickets](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/SupportTicketService.java): `src/main/java/com/auctionhouse/service/SupportTicketService.java`

### Platform operations

- [Auction administration](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/AdminController.java): `src/main/java/com/auctionhouse/controller/AdminController.java`
- [Platform administration](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/controller/SuperAdminController.java): `src/main/java/com/auctionhouse/controller/SuperAdminController.java`
- [Audit service](https://github.com/codebysaqi/auction-house/blob/main/src/main/java/com/auctionhouse/service/AuditService.java): `src/main/java/com/auctionhouse/service/AuditService.java`

### Other components

- **Buyer or seller**
- **Administrator**
- **H2 database**

## Connections

- Buyer or seller → Authentication: signs in
- Buyer or seller → Auction browsing: browses
- Buyer or seller → Bid submission: places bid
- Buyer or seller → Profiles: manages profile
- Authentication → User service: authenticates
- Profiles → User service: updates account
- Auction browsing → Auction lifecycle: searches auctions
- Bid submission → Bidding engine: submits bid
- Bidding engine → Auction repository: locks auction
- Bidding engine → Bid repository: saves bid
- Auction lifecycle → Auction repository: loads and closes
- Auction lifecycle → Notifications: announces outcomes
- Auction lifecycle → Payment release: creates winner release
- Administrator → Auction administration: moderates
- Auction administration → Auction lifecycle: manages auctions
- Auction administration → Audit service: records actions
- Administrator → Payment workflows: reviews payment
- Payment workflows → Payment release: handles release
- Payment release → Payment records: saves and queries
- Payment release → Commission records: records commission
- Payment release → User repository: updates seller balance
- Payment release → Buyer-seller chat: creates conversation
- Payment release → Notifications: notifies parties
- Buyer or seller → Support tickets: requests support
- Buyer or seller → Buyer-seller chat: messages seller
- Administrator → Platform administration: manages platform
- Platform administration → User repository: manages accounts
- Auction repository → H2 database: persists auctions
- Bid repository → H2 database: persists bids
- User repository → H2 database: persists users
- Payment records → H2 database: persists releases
- Commission records → H2 database: persists commissions
