minmon/docs/uml-guidance.md

2 KiB

UML Guidance

1. Use Case Diagram

Main Actor

  • Admin

Main Use Cases

  • Login
  • View dashboard summary
  • Manage servers
  • Manage services
  • Manage domains
  • Check DNS for domain
  • Manage server notes
  • Logout

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

3. Activity Diagram

Suggested activity: Check DNS

Flow:

  • Admin opens domain list/detail
  • Admin clicks Check DNS
  • System resolves A record
  • System compares resolved IPs with expected server IP
  • System stores result
  • System shows Match / Mismatch / Unresolved

4. State Chart Diagram

Suggested state chart: Domain DNS Status

States:

  • Unresolved
  • Match
  • Mismatch

Transitions:

  • Check DNS success with expected IP found -> Match
  • Check DNS success with expected IP missing -> Mismatch
  • Check DNS failure -> Unresolved

5. Sequence Diagram

Suggested sequence: Create Domain and Check DNS

Objects:

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

Flow:

  • Admin submits domain form
  • UI sends create request
  • API validates and stores domain
  • Admin triggers DNS check
  • UI calls check mutation
  • API resolves DNS
  • API updates database
  • UI displays result

6. Collaboration Diagram

Show interaction between:

  • Admin
  • Dashboard UI
  • Auth module
  • API router
  • Database
  • DNS lookup module

Focus on how each module collaborates during CRUD and DNS checking.