このプロジェクトでは、Notion 風のイシュー管理アプリを構築します。
アイデアをブロックとして管理したり、ToDo をデータベースビューでの表示・編集、複数ページでの管理機能を実装します。
useState、immer、useContext、zustand を段階的に使用した状態管理の比較学習を行います。 複雑な状態構造の管理において、各ライブラリの特徴と利点について理解を深めてください。
このプロジェクトの難易度と趣旨を踏まえて、以下の使用をお勧めします。
- useState による基本的な状態管理
- immer によるイミュータブルな記述の簡略化
- Context API による グローバルな状態管理
- Zustand によるグローバルでハイパフォーマンスな状態管理
- Vite を用いた React 環境構築
- TypeScript による型チェック
- Tailwind CSS を用いたスタイリング
- shadcn/ui によるコンポーネントの導入
- GitHub Pages へのデプロイ
- 「ユーザーストーリー」を全て満たすアプリを構築してください。
- 必要に応じて、スクリーンショットやデモサイトの URL を参照してください。
- スタイルは、あなた自身で独自にカスタマイズすることが可能です。
- アイデアブロック管理:
- アイデアをブロックとして追加・削除・並び替えできる。
- ToDo データベースビュー:
- ToDo をテーブル形式で表示・管理する。
- 詳細表示:
- ToDo クリックで右サイドバーに詳細ページを表示する。
- ページ管理:
- 複数ページの作成・切り替え・削除を行う。
- ユーザーがページにアクセスすると、アイデアを入力できるフォームが表示されている。
- 追加したアイデアが、ブロック形式で縦に一覧表示される。
- アイデアブロックをドラッグ&ドロップで並び替えできる。
- アイデアブロックを削除できる。
- ToDo をテーブル形式(データベースビュー)で表示できる。
- ToDo のタイトル、ステータス(未完了/完了)、作成日が表示される。
- 新しい ToDo を追加できる。
- ToDo のステータスを切り替えできる。
- ToDo を削除できる。
- ToDo をクリックすると、右サイドバーが開き詳細が表示される。
- サイドバーで ToDo のタイトル、説明、ステータスを編集できる。
- サイドバーを閉じることができる。
- 新しいページを作成できる。
- ページタブでページを切り替えできる。
- ページのタイトルを編集できる。
- ページを削除できる(最低 1 ページは残る)。
- 各ページで独立したアイデアブロックと ToDo を管理できる。
- アプリケーションがデプロイされており、誰でもアクセス可能である。