Перейти до вмісту

System Context (C4 рівень 1)

Найвищий рівень: хто користується системами, через які канали і з якими зовнішніми сервісами вони взаємодіють.

flowchart TB
    applicant([👤 Абітурієнт / Студент])
    admin([👤 Адмін / Контент-менеджер])
    insider([👤 Студент-інсайдер<br/>Studsearch UGC])

    subgraph abitly[Abitly.org]
        a_web[Web · Next.js]
        a_mini[Telegram Mini App · Next.js]
        a_bot[Telegram bot]
        a_api[API / backend]
        a_cms[Strapi CMS]
        a_analytics[Analytics<br/>lake-house]
    end

    subgraph studsearch[Studsearch.org]
        s_web[Web · Next.js]
        s_api[Backend]
        s_bot[Telegram bot]
    end

    subgraph external[Зовнішні системи]
        pay[💳 Monobank]
        google[🔐 Google OAuth]
        tg[📨 Telegram API]
        smtp[✉️ SMTP]
        tutor[🎓 Tutor service]
        cf[☁️ Cloudflare DNS/CDN]
    end

    applicant --> a_web & s_web
    applicant --> a_bot
    a_bot -- launches --> a_mini
    insider --> s_web
    admin --> a_cms

    a_web & s_web --> cf
    a_web -- cross-product --> s_api
    a_web --> a_api
    a_web --> a_cms
    a_web --> a_analytics
    a_mini --> a_api
    a_bot --> a_api
    s_web --> s_api
    s_api -- cross-product --> a_api

    a_api --> pay & google & smtp & tutor
    s_api --> google
    a_bot --> tg
    s_bot --> tg
  • Канали входу:
    • Веб-сайти (abitly.org, studsearch.org) — через Cloudflare.
    • Telegram — два entry points: бот (повідомлення) і Mini App (вбудований Next.js, який запускається з бота).
  • Cross-product зв’язок: фронт Abitly читає Studsearch API (cross-product пошук інсайдерського контенту), а Studsearch backend читає Abitly API (SSM abitly_url).
  • Analytics — окремий продукт-аналітики потік від фронту в lake-house.
  • Платежі — Monobank.
  • Auth — Google OAuth + JWT (плюс Telegram login через бот).
  • Email — SMTP (провайдер TODO: — спершу подивитись SMTP_HOST значення).

Деталі по сервісах → containers. Потоки → data-flows. Платформи → infrastructure.