「SHINJU DATE」はななしいんくに所属するタレントがYouTubeで配信や投稿した動画を検索できるウェブサービスです。ななしいんくが定める二次創作ガイドラインに従ってななしいんくとは直接の関係がない営利を目的としていない団体であるHaneru Developersによって開発と運営が行われています。
このプロジェクトは、複数のアプリケーションと共有パッケージで構成される monorepo です。
- web - 公開ウェブサイト (https://shinju.date) のフロントエンド
- admin - コンテンツ管理用の管理画面
- batch - 定期実行されるバッチ処理
- insights - データ分析や用語集生成などを行う Python ベースの API
- ui - 共有UIコンポーネント (Button, Input, Dialog, Cardなど)
- tailwind-config - 共有Tailwind CSSテーマ設定(カラーパレット、フォントなど)
- database - データベース接続と型定義
- msw-handlers - 開発・テスト用 MSW モックハンドラ
- youtube-api-client - YouTube API クライアント
- logger - 共有ログ機能
- constants - 共通定数
- helpers - 汎用ユーティリティ関数
- health-checkers - ヘルスチェック機能
- retryable-fetch - リトライ機能付き fetch
- temporal-fns - 日時操作ユーティリティ
- youtube-scraper - YouTube データスクレイピング
- フロントエンド: Next.js (App Router), TypeScript, Tailwind CSS
- バックエンド: Next.js API Routes, FastAPI (Python)
- データベース: Supabase (PostgreSQL)
- キャッシュ: Upstash Redis
- パッケージマネージャー: pnpm
- モノレポ管理: Turbo
- コード品質: Biome (JavaScript/TypeScript), Ruff (Python)
プロジェクトの開発環境をセットアップするには、以下のガイドに従ってください。
このガイドには、前提条件、依存関係のインストール、Supabaseのローカル設定、開発サーバーの起動方法などが含まれています。
より詳細な貢献方法については、CONTRIBUTING.md を参照してください。
- CONTRIBUTING.md - 開発・貢献ガイド
- AGENTS.md - AI エージェント活用ガイド
- docs/ - プロジェクト固有のドキュメント
- MSW Integration - MSW モック統合の詳細
- Hybrid Recommendation System - ハイブリッドオススメシステム
- Supabase Local Development - Supabaseローカル開発環境ガイド
- Supabase Implementation - Supabase実装サマリー
このプロジェクトは GitHub Codespaces および Dev Containers に対応しています。
- GitHubリポジトリページで「Code」→「Codespaces」→「Create codespace on main」をクリック
- 自動的に以下が実行されます:
- 依存関係のインストール(
pnpm install) - Supabaseローカル環境の起動(
supabase start) - パッケージのビルド
- 依存関係のインストール(
ローカル開発では OSS版 Supabase を使用します:
# Supabaseの状態確認
supabase status
# データのインポート
pnpm db:import
# データのエクスポート(本番環境から)
pnpm db:export詳細は Supabaseローカル開発ガイド を参照してください。
# 全アプリケーションの開発サーバー起動
pnpm run dev
# ビルド
pnpm run build
# テスト実行
pnpm run test
# コード品質チェック
pnpm run check --fix