minmon/docs/uml-guidance.md

3.1 KiB

UML Guidance

1. Use Case Diagram

Main Actor

  • Admin

Main Use Cases

  • Sign in
  • Access protected dashboard
  • View dashboard summary
  • Manage servers
  • Manage services
  • Manage domains
  • Check DNS for a domain
  • Manage notes
  • View notes related to a specific server
  • Sign out

2. Class Diagram

Main Classes / Entities

Server

  • id
  • name
  • primaryIpAddress
  • secondaryIpAddress
  • operatingSystem
  • location
  • provider
  • description
  • status
  • createdAt
  • updatedAt

Service

  • id
  • serverId
  • name
  • type
  • internalPort
  • externalPort
  • protocol
  • status
  • description
  • createdAt
  • updatedAt

Domain

  • id
  • serviceId
  • name
  • expectedServerIp
  • lastResolvedIp
  • lastResolvedIps
  • resolutionStatus
  • lastCheckedAt
  • remarks
  • lastCheckMessage
  • createdAt
  • updatedAt

Note

  • id
  • serverId
  • title
  • content
  • category
  • createdAt
  • updatedAt

Relationships

  • Server 1..* Service
  • Server 1..* Note
  • Service 1..* Domain
  • Service *..1 Server
  • Domain *..1 Service
  • Note *..1 Server

Implementation Notes

  • Server detail page displays related notes for the selected server.
  • Service forms select an existing server.
  • Domain forms select an existing service.
  • Note forms select an existing server.

3. Activity Diagram

Suggested activity: Check DNS from Domain List

Flow:

  • Admin opens domain list
  • Admin clicks the DNS status badge
  • System resolves IPv4 A record(s)
  • System compares resolved IPs with expectedServerIp
  • System stores check result in the domain record
  • System refreshes the list
  • System shows MATCH, MISMATCH, or UNRESOLVED

4. State Chart Diagram

Suggested state chart: Domain DNS Status

States:

  • UNRESOLVED
  • MATCH
  • MISMATCH

Transitions:

  • DNS check success and expected IP found -> MATCH
  • DNS check success and expected IP not found -> MISMATCH
  • DNS resolution failure -> UNRESOLVED

5. Sequence Diagram

Suggested sequence: Create Domain and Check DNS

Objects:

  • Admin
  • Web UI
  • tRPC API
  • Database
  • DNS Resolver

Flow:

  • Admin opens create domain page
  • UI loads available services
  • Admin selects a service and submits the form
  • API validates the service relationship
  • API stores the domain
  • Admin clicks DNS status / check action
  • UI calls domains.check
  • API resolves DNS A records
  • API updates domain check fields in the database
  • UI refetches and displays the new status

6. Collaboration Diagram

Show collaboration between:

  • Admin
  • Dashboard UI
  • better-auth client / auth middleware
  • tRPC routers
  • Database
  • DNS lookup module

Suggested emphasis:

  • Protected route access
  • CRUD coordination between UI and API
  • Parent-child relationship selection in forms
  • DNS checking and persistence flow
  • Server detail page collaboration with note listing

7. UI/Interaction Notes for Documentation

Useful current UI details you can reflect in diagrams or captions:

  • / redirects to /dashboard or /login based on session state
  • Main list pages are ordered by createdAt DESC, then id DESC
  • Delete actions use a two-click icon confirmation flow
  • Domain DNS check is triggered from the DNS status badge in the list view