Skip to content

yunbow/next-app-podcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

next-app-podcast

Next.js (App Router) で構築されたポッドキャストプレイヤー兼コミュニティアプリです。

主な機能

  • ポッドキャスト購読・エピソード再生・再生履歴
  • ブックマーク / プレイリスト / メモ / ダウンロード
  • ユーザー認証(NextAuth: Credentials / Google / GitHub)
  • フォロー・投稿・コメント・リアクションなどソーシャル機能
  • Stripe による有料プラン(サブスクリプション)

技術スタック

カテゴリ 採用技術
フレームワーク Next.js 16 (App Router) / React 19 / TypeScript 5
スタイル Tailwind CSS 4 / shadcn-ui (Radix UI) / lucide-react
状態管理 Zustand / TanStack Query
フォーム / 検証 React Hook Form / Zod
認証 NextAuth (Auth.js) v5 + Prisma Adapter
DB / ORM Prisma 6 (開発: SQLite / 本番想定: PostgreSQL)
決済 Stripe
メール Nodemailer (SMTP)
ロギング pino / pino-pretty
テスト Vitest / Testing Library / Playwright / MSW
品質 ESLint / Prettier

ディレクトリ構成

.
├─ prisma/              # Prisma schema / マイグレーション / dev.db
├─ public/              # 静的アセット
├─ src/
│  ├─ app/              # App Router のルート(pages, layouts, route handlers)
│  ├─ components/       # 共通 UI コンポーネント(shadcn-ui ベース)
│  ├─ features/         # 機能単位のモジュール (auth/podcast/library/social など)
│  ├─ hooks/            # 共有 React Hooks
│  ├─ lib/              # ユーティリティ / クライアント / 設定
│  ├─ tests/            # テストユーティリティ
│  ├─ types/            # 共有型定義
│  └─ middleware.ts     # ルート保護等のミドルウェア
├─ docs/
│  ├─ usages/           # 利用手順(ローカルセットアップ等)
│  └─ ai-dev-os/        # 開発ガイドライン (AI DEV OS)
├─ Dockerfile
└─ next.config.ts

クイックスタート

# 1. 依存をインストール(postinstall で prisma generate が走ります)
npm ci

# 2. 環境変数を用意
cp .env.example .env.local
# 必要に応じて NEXTAUTH_SECRET などを設定

# 3. データベース(SQLite)を初期化
npm run db:migrate:dev

# 4. 開発サーバーを起動
npm run dev

ブラウザで http://localhost:3000 を開いてください。

詳細な手順・トラブルシューティングは docs/usages/local-setup.md を参照してください。

npm スクリプト

スクリプト 用途
npm run dev 開発サーバーを起動
npm run build 本番ビルド
npm start 本番モードで起動
npm run lint ESLint 実行
npm run format Prettier で整形
npm run format:check Prettier チェックのみ
npm run test Vitest を watch モードで実行
npm run test:run Vitest を 1 回実行
npm run test:e2e Playwright で E2E テスト
npm run analyze バンドルアナライザ付きでビルド
npm run db:migrate:dev 開発用マイグレーション + Prisma Client 再生成
npm run db:migrate:deploy 本番マイグレーション適用
npm run db:migrate:status マイグレーション状態を表示

環境変数

.env.example を雛形として .env.local にコピーして利用してください。 ローカル開発で必須の項目は以下の通りです。

  • NODE_ENVdevelopment
  • DATABASE_URL — 既定では file:./dev.db(SQLite)
  • NEXTAUTH_SECRETopenssl rand -base64 32 等で生成
  • NEXTAUTH_URL / NEXT_PUBLIC_APP_URL — 既定では http://localhost:3000

OAuth (Google/GitHub) / SMTP / Stripe を実際に使う機能を触るときのみ、対応する変数を設定してください。

Docker

docker build -t next-app-podcast .
docker run --rm -p 3000:3000 --env-file .env.local next-app-podcast

ヘルスチェックエンドポイントは /api/health です。

ドキュメント

ライセンス

MIT License

About

Next.js (App Router) で構築されたポッドキャストプレイヤー兼コミュニティアプリ

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages