Skip to content

システム概要・構成図

1. プラットフォーム概要

Issue駆動開発を活用した業務委託向けプラットフォーム。報酬付きIssueを業務委託エンジニアがAI(Claude Code)で自発的に取得・解決し、MR内の報告資料のみでレビュー完了できる粒度で納品する。

ビジネスフロー

  1. マネージャーがGitLab上に報酬付きIssueを作成
  2. 業務委託エンジニアがIssueを取得(アサイン)
  3. AI(Claude Code)を活用して開発・MR提出
  4. レビュアーがMR内の報告資料でレビュー
  5. FB対応 → 承認 → 報酬確定

2. 全体アーキテクチャ図

mermaid
graph TB
    subgraph "Client Layer"
        Browser["Browser<br/>(React 19 + Vite)"]
    end

    subgraph "CDN / Edge"
        CFPages["Cloudflare Pages<br/>(Frontend Hosting)"]
    end

    subgraph "Backend Layer"
        API["FastAPI<br/>(REST API Server)"]
        Workers["Cloudflare Workers<br/>(Webhook Receiver)"]
    end

    subgraph "Data Layer"
        DB["PostgreSQL<br/>(Primary Database)"]
    end

    subgraph "External Services"
        GitLab["GitLab<br/>(Issue / MR / OAuth)"]
        Slack["Slack Bot<br/>(通知)"]
        Discord["Discord Bot<br/>(通知)"]
    end

    subgraph "CI/CD"
        GitLabCI["GitLab CI<br/>(Build / Deploy)"]
    end

    Browser -->|HTTPS| CFPages
    CFPages -->|API Calls| API
    API -->|SQLAlchemy ORM| DB
    API -->|OAuth / API| GitLab
    API -->|Webhook通知| Slack
    API -->|Webhook通知| Discord
    GitLab -->|Webhook Events| Workers
    Workers -->|Event Forward| API
    GitLabCI -->|Deploy Frontend| CFPages
    GitLabCI -->|Deploy Backend| API

3. コンポーネント一覧と責務

コンポーネント技術責務
Frontend SPAReact 19 + Vite + TypeScript管理画面UI(プロジェクト一覧、カンバン、予算管理、ETA表示)
Backend APIFastAPI + SQLAlchemyビジネスロジック、認証、データ永続化、GitLab API連携
Webhook ReceiverCloudflare WorkersGitLab Webhookの受信・検証・イベント転送
DatabasePostgreSQLプロジェクト、Issue、ユーザー、報酬、レビュー履歴の永続化
Frontend HostingCloudflare PagesSPA静的ファイル配信、CDNキャッシュ
CI/CD PipelineGitLab CIビルド、テスト、デプロイ自動化
認証GitLab OAuth 2.0SSO、ユーザー認証・認可
通知Slack / Discord BotIssue割り当て、レビュー依頼、報酬確定等の通知

4. 技術スタック一覧

Frontend

カテゴリ技術バージョン
UIフレームワークReact19.x
ビルドツールVite6.x
言語TypeScript5.x
状態管理Zustand or TanStack Query最新
UIコンポーネントShadcn/ui + Tailwind CSS最新
ルーティングReact Router7.x
HTTPクライアントfetch API (native)-

Backend

カテゴリ技術バージョン
WebフレームワークFastAPI0.115+
ORMSQLAlchemy2.x
データベースPostgreSQL16.x
マイグレーションAlembic1.x
言語Python3.12+
タスクキュー(必要に応じてCelery or ARQ)-

Infrastructure

カテゴリ技術用途
Frontend HostingCloudflare PagesSPA配信
Backend HostingVPS or Cloudflare WorkersAPI Server
CI/CDGitLab CIビルド・デプロイ
認証GitLab OAuth 2.0SSO
通知Slack / Discord Botイベント通知

5. デプロイ構成

mermaid
graph LR
    subgraph "開発者"
        Dev["git push"]
    end

    subgraph "GitLab CI"
        Build["Build Stage"]
        Test["Test Stage"]
        DeployFE["Deploy Frontend"]
        DeployBE["Deploy Backend"]
    end

    subgraph "Production"
        CF["Cloudflare Pages"]
        VPS["VPS / Workers"]
        PG["PostgreSQL"]
    end

    Dev --> Build --> Test
    Test --> DeployFE --> CF
    Test --> DeployBE --> VPS
    VPS --> PG

6. 管理画面の画面構成

/                          → ダッシュボード(全プロジェクトサマリー)
/projects                  → プロジェクト一覧
/projects/:id              → プロジェクト詳細(カンバンビュー)
/projects/:id/budget       → 予算管理・支払い一覧
/projects/:id/analytics    → 進捗分析・ETA表示
/issues/:id                → Issue詳細(報酬・アサイン・MRリンク)
/settings                  → システム設定(Webhook・通知設定)

主要画面の機能

プロジェクト一覧

  • 予算 / Issue消化率 / 支払い確定チケット金額を一覧表示
  • 予算超過・進捗遅延のアラート表示

プロジェクト詳細(カンバン)

  • ステータス別Issue管理(Open / In Progress / Review / Done)
  • ドラッグ&ドロップによるステータス変更
  • アサイン状況と消化率から完了予測(ETA)を可視化