MiSendaa デジタルサイネージ管理システム 技術・品質評価書
評価日: 2025年12月11日 | 開発体制: 1名(フルスタック) | 総開発時間: 418時間(約52人日)
1人開発で商用レベルのSaaSアプリケーションを構築。Web開発企業での実務経験相当のスキルを実証。
| 工程 | 時間 | 割合 | 成果物・特記事項 |
|---|---|---|---|
| フロントエンド開発 | 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% | ドメイン知識整理、機能一覧作成 |
| リソース | 件数 | 主な操作 |
|---|---|---|
| /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) |
| 機能領域 | 件数 | 主な処理 |
|---|---|---|
| content | 10 | 作成, 更新, 削除, 共有, ストレージ |
| channel | 4 | 作成, 更新, 削除, 並び替え |
| schedule | 9 | 作成, 更新, 再生, 停止, ステージング |
| department | 7 | 作成, 更新, 削除, ユーザー管理 |
| category | 7 | 作成, 更新, 削除, 並び替え |
| ticker | 7 | 作成, 更新, 削除, 複製, 優先度 |
| notification | 6 | 取得, 既読, 詳細 |
| その他 | 5 | board, share-history, user |
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 |
PDF, 画像, 動画, URL, YouTube埋め込み, 記事投稿に対応。サムネイル自動生成、チャンクアップロード、部署間共有機能。
6種類対応複数コンテンツの順序・時間指定、D&Dによる並び替え、開始コンテンツ指定機能。
dnd-kit使用タイムスロット別チャンネル切替、ステージング(予約配信)、タイムライン表示。
予約配信対応16:9/4K対応、自動スライドショー、タッチ操作、アイドルタイムアウト、カルーセル表示。
Public APIカード形式一覧、ピン留め機能、チャンネル/カテゴリフィルタ、拡大表示。
フィルタ機能マーキー表示、時間帯指定、表示位置・速度・色設定、プレビュー機能。
時間帯制御ユーザー(3権限)、部署、カテゴリ管理。ストレージ容量制限(プラン別)。
RBAC対応コンテンツ共有通知、スケジュール更新通知。Resendによるメール配信、通知設定。
非同期処理部署別使用量表示、孤児ファイル検出・削除、Cloud Tasks経由の非同期クリーンアップ。
自動クリーンアップ本番: Cloud Run (Main) ← Cloud LB ← Cloud Armor ← IAP | Worker: Cloud Run ← Cloud Tasks / Scheduler | Storage: Supabase Storage + GCS | DB: Supabase PostgreSQL (PgBouncer)
要件定義、デザイン、技術選定から実装・テスト・デプロイまで、プロダクト開発の全工程を1人で完遂。418時間で商用レベルの品質を達成。
Next.js 15、React 19、Tailwind v4など最新版を採用。Server Components、Server Actionsなどモダンパターンを実践。
クライアントフェッチ、SSR、ミューテーションの3パターンを明確に分離。責務分担によりテスタビリティ・保守性を向上。
Cloud Tasks/Scheduler による非同期処理、自動バックアップ、Worker分離、IAP によるアクセス制御。
サイネージ業務要件(スケジュール、チャンネル、テロップ、ステージング等)を適切にモデリング。
70 APIエンドポイント、55 Server Actions、99 DBメソッドを整理された構造で実装。RESTful設計を遵守。
1人開発として非常に高い完成度。Web開発企業での実務経験相当のスキルを実証。
MiSendaaプロジェクトは、1名の開発者が要件定義・デザイン・技術選定・実装・テスト・インフラ構築・デプロイの全工程を約52人日(418時間)で完遂した包括的なWebアプリケーション。設計規約・コード品質を維持しながら、モダンな技術スタックとレイヤードアーキテクチャにより構築。Web開発企業で求められる実践的スキルを網羅的に実証。
フルスタック開発
最新技術の実践
レイヤード設計
API・DB設計
52人日で完遂
商用レベル品質
| 基本情報 | |
|---|---|
| プロジェクト名 | 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