このプロジェクトはNext.jsを使用して構築された、モダンなカンバンボードアプリケーションです。タスク管理を効率化し、チームの生産性を向上させるための直感的なインターフェースを提供します。
- カンバンボード: タスクを「未着手」「進行中」「完了」の3つのステータスで管理
- タスク管理: タスクの作成、編集、ステータス変更、担当者の割り当て
- 優先度設定: タスクに優先度(低・中・高)を設定可能
- チームメンバー管理: タスクにチームメンバーを割り当て可能
- レスポンシブデザイン: モバイルからデスクトップまで様々なデバイスに対応
- ダークモード対応: ライト/ダークモードの切り替えをサポート
- フロントエンド: Next.js 15.x (App Router), React, TypeScript
- UI: Shadcn UI, Tailwind CSS
- バックエンド: Next.js Server Actions
- データベース: PostgreSQL
- ORM: Drizzle ORM
- コンテナ化: Docker, Docker Compose
- フォーム管理: React Hook Form, Zod
- Node.js 18.x以上
- Docker および Docker Compose
- npm または yarn
このプロジェクトはPostgreSQLとDrizzle ORMを使用しています。以下の手順でデータベースをセットアップしてください:
- Dockerを使用してPostgreSQLデータベースを起動:
docker-compose up -d- データベースマイグレーションを生成:
npm run db:generate- スキーマを直接データベースに適用する場合:
npm run db:push- マイグレーションをデータベースに適用:
npm run db:migrate- 初期データをデータベースに投入:
npm run db:seedデータベースのセットアップ後、開発サーバーを起動します:
npm run devブラウザでhttp://localhost:3000を開くと、アプリケーションが表示されます。
- カンバンボード画面右上の「新規タスク」ボタンをクリック
- タスクのタイトル、説明、ステータス、優先度を入力
- 必要に応じて担当者を選択
- 「保存」ボタンをクリックしてタスクを作成
- 編集したいタスクカードをクリック
- 表示されたダイアログで情報を編集
- 「保存」ボタンをクリックして変更を適用
- タスクカード上の担当者アイコンをクリック
- ドロップダウンメニューから担当者を選択
- 担当者の割り当てを解除する場合は「割り当て解除」を選択
タスクの編集ダイアログでステータスを変更することができます。
- VSCodeの「実行とデバッグ」タブを開く
- 「Next.js: debug server-side」を選択して実行
- ブレークポイントを設定してデバッグ
debug.batを実行- Chromeで
chrome://inspectにアクセス - 「Open dedicated DevTools for Node」をクリック
src/
├── app/ # Next.jsのアプリケーションルーター
│ ├── api/ # APIエンドポイント
│ └── page.tsx # メインページ
├── components/ # Reactコンポーネント
│ ├── ui/ # 共通UIコンポーネント
│ └── kanban/ # カンバンボード関連コンポーネント
├── lib/ # ユーティリティ関数とサーバーアクション
│ ├── actions/ # サーバーアクション
│ ├── db/ # データベース関連
│ └── utils.ts # ユーティリティ関数
└── styles/ # グローバルスタイル
サーバーアクションのデバッグには以下の方法があります:
- VSCodeのデバッガーを使用
debug.batを実行してNode.jsデバッガーを使用- コンソールログを使用
src/lib/db/schema.tsファイルを編集npm run db:generateを実行して新しいマイグレーションを生成npm run db:pushまたはnpm run db:migrateを実行してデータベースに適用
このアプリケーションはVercelにデプロイすることができます。
- GitHubリポジトリをVercelにインポート
- 環境変数を設定(データベース接続情報など)
- デプロイを実行
詳細はNext.jsのデプロイドキュメントを参照してください。
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。