プロジェクト評価レポート

MiSendaa デジタルサイネージ管理システム 技術・品質評価書

評価日: 2025年12月11日 | 開発体制: 1名(フルスタック) | 総開発時間: 418時間(約52人日)

Misetopia - アーキテクチャ・運用構成図 MiSemarket - 技術的市場価値評価

1. エグゼクティブサマリー

4.4

総合評価: 優秀 (Excellent)

1人開発で商用レベルのSaaSアプリケーションを構築。Web開発企業での実務経験相当のスキルを実証。

プロジェクト概要: MiSendaaは、工場・営業所向けデジタルサイネージの管理・表示WebアプリケーションPDF、URL、画像、動画(YouTube含む)のスライド表示、スケジュール管理、リアルタイム更新、掲示板機能を統合。
📊 プロジェクト規模: 統一された設計規約・コード品質を維持しながら、1,043ファイル・70 API・30ページ・GCPインフラを52人日で構築。
418
総開発時間
1,043
TypeScriptファイル
70
APIエンドポイント
55
Server Actions
30
ページ数

2. 総合評価一覧

開発スコープ(1人での全工程実施)
★★★★★
5.0
使用技術(モダンWeb開発技術の採用)
★★★★★
5.0
設計品質(アーキテクチャ・統一性・変更容易性)
★★★★
4.5
機能実装(機能充実度・ドメイン知識反映・UX)
★★★★
4.5
API設計(RESTful設計・エンドポイント整理)
★★★★
4.5
デザイン(SaaS品質・デザインシステム統一性)
★★★★
4.0
セキュリティ(認証・認可・ネットワーク保護)
★★★★
4.0
CI/CD・クラウド構成(自動化・運用設計)
★★★★
4.5
テスト(Playwright / Vitest / Husky)
★★★★
4.0
ドキュメント品質(設計書・ルール整備)
★★★★
4.0

3. 開発スコープ ★★★★★

1人で全工程を完遂: 要件定義・構想からUI/UXデザイン、技術選定、フロントエンド/バックエンド実装、DB設計、インフラ構築、CI/CD整備、テスト、デプロイまで。全ての意思決定と実装を単独で遂行。
開発の特徴: 設計ルール・コーディング規約を整備し、一貫した品質を維持。チーム開発への移行を想定した拡張性のある設計。

開発時間内訳

工程 時間 割合 成果物・特記事項
フロントエンド開発 193h 46.2% 30ページ、1043ファイル、レイヤードアーキテクチャ
バックエンド開発 123h 29.4% 70 APIエンドポイント、55 Server Actions、99 DBメソッド
環境構築 40h 9.6% GCP構成、CI/CD、Supabase連携
アプリケーション設計 18h 4.3% アーキテクチャ設計、API設計
データベース設計・開発 14.5h 3.5% Prismaスキーマ、インデックス最適化
UI/UX設計 10h 2.4% デザインシステム、カラー・フォント設計
その他(要件定義・打合せ等) 19.5h 4.6% ドメイン知識整理、機能一覧作成

4. 使用技術 ★★★★★

2025年現在のWeb開発企業で広く採用されているモダンな技術スタックを適切に選定。Next.js 15、React 19、Tailwind CSS v4など最新バージョンを積極採用。

フロントエンド

  • Next.js 15 (App Router, Turbopack)
  • React 19
  • TypeScript 5
  • Tailwind CSS v4
  • shadcn/ui + HeadlessUI
  • Framer Motion
  • TanStack Query / Table
  • Zustand (状態管理)
  • React Hook Form + Zod
  • nuqs (URLクエリ状態)

バックエンド / BaaS

  • Next.js Server Actions
  • Next.js Route Handlers
  • Supabase (認証・DB・Storage)
  • Prisma ORM
  • PostgreSQL
  • Resend (メール送信)
  • TUS Protocol (大容量Upload)
  • Sharp (画像処理)
  • DOMPurify (XSS対策)

インフラ / DevOps

  • Google Cloud Platform
  • Cloud Run (Main + Worker)
  • Cloud Tasks (非同期処理)
  • Cloud Scheduler
  • Cloud Storage (バックアップ)
  • Cloud Load Balancing
  • Identity-Aware Proxy
  • Cloud Armor (WAF)
  • GitHub Actions (CI/CD)
  • Docker / Artifact Registry

5. 設計品質(フロントエンド レイヤードアーキテクチャ)★★★★☆

フロントエンドでレイヤードアーキテクチャを徹底: クライアントフェッチ、サーバサイドフェッチ、ミューテーション(更新系)の3パターンを明確に分離し、責務を分担。bulletproof-react準拠の機能ベースディレクトリ構成。

クライアントフェッチ(参照系)

Page / Component
TanStack Query (hooks)
domain/repository
route.ts (Route Handler)
api/server (Prisma)
PostgreSQL

サーバサイドフェッチ(SSR/RSC)

Page (RSC)
domain/repository
api/server (Prisma)
PostgreSQL

ミューテーション(更新系)

Page / Component
application/actions
domain/repository
api/server (Prisma)
PostgreSQL

設計のポイント

  • 13の機能モジュール (features/) に分離
  • Container/Presentational パターン
  • domain/model でドメインオブジェクト定義
  • domain/validators でバリデーション一元化
  • コロケーション(関連ファイルを近くに配置)

機能モジュール一覧

  • content / channel / schedule / ticker
  • department / user / category
  • notification / share-history
  • signage / board / pages

6. API設計 ★★★★☆

APIエンドポイント構成(70件)

リソース 件数 主な操作
/api/contents 9 CRUD, download, share, preview
/api/departments 20 CRUD, stats, storage, users, signage
/api/channels 6 CRUD, preview, can-delete
/api/schedules 9 CRUD, play, stop, staging
/api/categories 7 CRUD, reorder, stats, usage
/api/users 8 CRUD, by-email, stats
/api/tickers 2 CRUD
/api/public/* 9 signage, board, contents (公開API)

Server Actions(55件)

機能領域 件数 主な処理
content 10 作成, 更新, 削除, 共有, ストレージ
channel 4 作成, 更新, 削除, 並び替え
schedule 9 作成, 更新, 再生, 停止, ステージング
department 7 作成, 更新, 削除, ユーザー管理
category 7 作成, 更新, 削除, 並び替え
ticker 7 作成, 更新, 削除, 複製, 優先度
notification 6 取得, 既読, 詳細
その他 5 board, share-history, user

DBメソッド数(ドメイン別・99件)

features/*/api/ 配下のPrisma直接操作メソッド

ドメイン メソッド数 主な操作
content 52 CRUD, storage, thumbnail, share, preview
user 10 CRUD, findByEmail, departments
ticker 7 CRUD, schedule, priority
notification 7 find, create, markRead, bulkCreate
department 5 CRUD, findWithUsers
category 5 CRUD, reorder, usage
channel 4 CRUD, contents, preview
schedule 4 CRUD, staging, active
signage 2 getConfig, updateLastAccess
board 2 getConfig, contents
share-history 1 create
合計 99

API設計の特徴

  • RESTful設計を基本としつつ、実用性を重視
  • Route Handlers (参照系) + Server Actions (更新系) の使い分け
  • ドメインごとに api/client, api/serverを分離
  • Zodによるリクエスト/レスポンス型検証

7. 実装機能 ★★★★☆

コンテンツ管理

PDF, 画像, 動画, URL, YouTube埋め込み, 記事投稿に対応。サムネイル自動生成、チャンクアップロード、部署間共有機能。

6種類対応

チャンネル管理

複数コンテンツの順序・時間指定、D&Dによる並び替え、開始コンテンツ指定機能。

dnd-kit使用

スケジュール管理

タイムスロット別チャンネル切替、ステージング(予約配信)、タイムライン表示。

予約配信対応

サイネージ画面

16:9/4K対応、自動スライドショー、タッチ操作、アイドルタイムアウト、カルーセル表示。

Public API

掲示板画面

カード形式一覧、ピン留め機能、チャンネル/カテゴリフィルタ、拡大表示。

フィルタ機能

テロップ管理

マーキー表示、時間帯指定、表示位置・速度・色設定、プレビュー機能。

時間帯制御

マスタ管理

ユーザー(3権限)、部署、カテゴリ管理。ストレージ容量制限(プラン別)。

RBAC対応

通知・メール

コンテンツ共有通知、スケジュール更新通知。Resendによるメール配信、通知設定。

非同期処理

ストレージ管理

部署別使用量表示、孤児ファイル検出・削除、Cloud Tasks経由の非同期クリーンアップ。

自動クリーンアップ

8. セキュリティ / CI/CD / クラウド構成

セキュリティ ★★★★☆

認証・認可

  • Supabase Auth (Google OAuth)
  • RBAC: VIEWER / CONTENT_MANAGER / SYSTEM_ADMIN
  • Middlewareによる認証チェック
  • Public Path制御

ネットワーク保護

  • Identity-Aware Proxy (社内アクセス制限)
  • Cloud Armor (WAF)
  • Cloud Load Balancing
  • HTTPS強制

CI/CD・運用 ★★★★☆

デプロイパイプライン

  • GitHub Actions → Docker Build
  • Artifact Registry → Cloud Run
  • Main App + Worker の2サービス構成
  • Husky + lint-staged (pre-commit)

バックアップ・監視

  • 毎日0:10 JST 自動DBバックアップ
  • Cloud Storage 30日保存
  • pg_dump (カスタム + SQL形式)

Cloud構成概要

本番: Cloud Run (Main) ← Cloud LB ← Cloud Armor ← IAP | Worker: Cloud Run ← Cloud Tasks / Scheduler | Storage: Supabase Storage + GCS | DB: Supabase PostgreSQL (PgBouncer)

9. 特筆すべき強み

1. 包括的なフルスタック実装

要件定義、デザイン、技術選定から実装・テスト・デプロイまで、プロダクト開発の全工程を1人で完遂。418時間で商用レベルの品質を達成。

2. 最新技術への追従

Next.js 15、React 19、Tailwind v4など最新版を採用。Server Components、Server Actionsなどモダンパターンを実践。

3. フロントエンドのレイヤード設計

クライアントフェッチ、SSR、ミューテーションの3パターンを明確に分離。責務分担によりテスタビリティ・保守性を向上。

4. 本番運用を見据えた設計

Cloud Tasks/Scheduler による非同期処理、自動バックアップ、Worker分離、IAP によるアクセス制御。

5. ドメイン知識の的確な反映

サイネージ業務要件(スケジュール、チャンネル、テロップ、ステージング等)を適切にモデリング。

6. API設計の網羅性

70 APIエンドポイント、55 Server Actions、99 DBメソッドを整理された構造で実装。RESTful設計を遵守。

10. 総合評価と結論

4.4

総合評価: 優秀 (Excellent)

1人開発として非常に高い完成度。Web開発企業での実務経験相当のスキルを実証。

結論

MiSendaaプロジェクトは、1名の開発者が要件定義・デザイン・技術選定・実装・テスト・インフラ構築・デプロイの全工程を約52人日(418時間)で完遂した包括的なWebアプリケーション。設計規約・コード品質を維持しながら、モダンな技術スタックとレイヤードアーキテクチャにより構築。Web開発企業で求められる実践的スキルを網羅的に実証。

技術力

フルスタック開発
最新技術の実践

設計力

レイヤード設計
API・DB設計

実行力

52人日で完遂
商用レベル品質

本レポートは、ソースコード、設計ドキュメント、インフラ構成を精査した上で作成されました。 | 評価日: 2025年12月11日

付録: プロジェクト基本情報

基本情報
プロジェクト名 MiSendaa(見せんだー!)
プロジェクト種別 デジタルサイネージ管理システム
開発体制 1名(フルスタック)
総開発時間 418時間(約52人日)
TypeScriptファイル数 1,043ファイル
APIエンドポイント数 70件
Server Actions数 55件
DBメソッド数 99件
ページ数 30ページ
機能モジュール数 13モジュール
技術スタック
フレームワーク Next.js 15, React 19, TypeScript 5
スタイリング Tailwind CSS v4, shadcn/ui
状態管理 Zustand, TanStack Query
BaaS Supabase(認証, DB, Storage)
ORM Prisma
クラウド Google Cloud Platform
CI/CD GitHub Actions → Cloud Run
テスト Vitest, Playwright, Husky

End of Report