smarttools/diagrams/smarttools-registry_ux_9.puml

1 line
2.1 KiB
Plaintext

@startuml\nskinparam monochrome true\nskinparam shadowing false\nskinparam handwritten false\n\nactor \"User\" as user\nparticipant \"SmartTools CLI\" as cli\nbox \"Web UI (Flask/Jinja/Tailwind)\" #LightBlue\n participant \"Public Pages (Tier 1)\" as public\n participant \"Registry Pages (Tier 2)\" as registry\n participant \"Community Pages (Tier 3)\" as community\n participant \"Publisher Dashboard\" as dashboard\nend box\nparticipant \"Registry API Server\" as api\nparticipant \"Gitea\" as gitea\nparticipant \"AdSense/Analytics\" as ads\nparticipant \"YouTube\" as youtube\n\nuser -> public: Browse Landing Page (/)\npublic -> ads: Load Ads (if applicable)\npublic -> user: Rendered Landing Page (with ads)\n\nuser -> public: View Docs/Tutorials (/docs/*, /tutorials/*)\npublic -> ads: Load Ads (if applicable)\npublic -> youtube: Embed Video (if present)\npublic -> user: Rendered Content (with ads/videos)\n\nuser -> registry: Browse Tools (/tools, /search)\nregistry -> api: GET /tools, /search\napi --> registry: Tool List/Results\nregistry -> user: Rendered Tool List (NO ADS)\n\nuser -> registry: View Tool Details (/tools/{owner}/{name})\nregistry -> api: GET /tools/{owner}/{name}\napi --> registry: Tool Details\nregistry -> user: Rendered Tool Details (NO ADS)\n\nuser -> community: Visit Forum/Contributors\ncommunity -> ads: Load Light Ads (optional)\ncommunity -> user: Rendered Community Content\n\nuser -> dashboard: Register/Login\ndashboard -> api: POST /register, /login\napi --> dashboard: Auth Token\ndashboard -> user: Access Dashboard\n\nuser -> dashboard: Manage Tools/Tokens\ndashboard -> api: Authenticated API Calls\napi --> dashboard: Data\ndashboard -> user: Rendered Dashboard\n\nuser -> cli: Publish Tool (via CLI)\ncli -> api: POST /tools (authenticated)\napi -> gitea: Create PR\ngitea --> api: PR URL\napi --> cli: PR URL\ncli --> user: PR Confirmation\n\nuser -> public: Donate (/donate)\npublic -> user: Donation Options\n\nuser -> public: View Featured Projects\npublic -> api: GET /featured_projects\napi --> public: Featured Projects Data\npublic -> user: Rendered Featured Projects\n\n@enduml