フルスタック技術選定アプリケーション(モノレポ構成)
tech-select/
├── frontend/ # React + TypeScript + Vite
├── backend/ # Express + TypeScript + Prisma
├── package.json # ルート設定(ワークスペース管理)
└── README.md
- Node.js >= 18.0.0
- pnpm >= 8.0.0
# プロジェクト全体の依存関係をインストール
pnpm install# フロントエンド・バックエンドを同時起動
pnpm run dev
# フロントエンドのみ起動
pnpm run dev:frontend
# バックエンドのみ起動
pnpm run dev:backend# 全体ビルド
pnpm run build
# フロントエンドのみビルド
pnpm run build:frontend
# バックエンドのみビルド
pnpm run build:backend# マイグレーション実行
pnpm run db:migrate
# シードデータ投入
pnpm run db:seed
# Prisma Studio起動
pnpm run db:studio
# データベースリセット
pnpm run db:reset# 本番環境でバックエンド起動
pnpm run start
# 各プロジェクトのclean実行
pnpm run clean
# フロントエンドのLint実行
pnpm run lint
# テスト実行
pnpm run test- React 18 - UI ライブラリ
- TypeScript - 型安全性
- Vite - 高速ビルドツール
- Express - Web アプリケーションフレームワーク
- TypeScript - 型安全性
- Prisma - モダンな ORM
- SQLite - 開発用データベース
- pnpm workspaces - モノレポ管理
- concurrently - 並行プロセス実行
- nodemon - 開発サーバー自動再起動
GET / - サーバー状態確認
GET /health - ヘルスチェック
GET /api/users - 全ユーザー取得
POST /api/users - ユーザー作成
GET /api/users/:id - ユーザー詳細取得
PUT /api/users/:id - ユーザー更新
DELETE /api/users/:id - ユーザー削除
開発環境では SQLite を使用しており、backend/dev.dbにデータが保存されます。
- User - ユーザー情報
- Post - 投稿情報
- Category - カテゴリ情報
-
初期セットアップ
pnpm install pnpm run db:migrate pnpm run db:seed
-
開発開始
pnpm run dev
- フロントエンド: http://localhost:5173
- バックエンド: http://localhost:3001
-
新機能開発
- フロントエンド:
frontend/src/で作業 - バックエンド:
backend/src/で作業 - データベース変更:
backend/prisma/schema.prismaを編集後pnpm run db:migrate
- フロントエンド:
このプロジェクトは pnpm workspaces を使用してモノレポとして管理されています。
- ルート: 全体の設定とスクリプト管理
- frontend: React アプリケーション
- backend: Express API サーバー
各ワークスペースは独立して作業可能で、共通の依存関係はルートで管理されます。