backend/: FastAPIアプリケーションbackend/app/routers/: APIルーターbackend/app/models.py: SQLAlchemyモデルbackend/app/schemas.py: Pydanticスキーマfrontend/: Vite + Reactアプリケーションfrontend/src/components/: 画面・UIコンポーネントfrontend/src/utils/: 表示・計算などの共通処理
バックエンド:
SECRET_KEY はJWT署名に必須です。未設定または空の場合、バックエンドは起動時にエラーで停止します。開発用には以下のように任意のランダム値を設定します。
cd backend
source venv/bin/activate
export SECRET_KEY=$(openssl rand -hex 32)
uvicorn app.main:app --reload --port 18000フロントエンド:
cd frontend
npm run devブラウザで http://localhost:15173 を開きます。
Docker配布版:
docker compose up --buildDocker版のDBとアップロードファイルはホスト側の data/ に保存します。
デスクトップ版(トレイ常駐アプリ)のビルドは desktop.md を参照してください。
初回起動時に部品または商品が1件も存在しない場合は、配布確認用の初期サンプルデータを自動投入します。手動で投入したい場合は以下を実行します。
cd backend
python seed_initial_data.pyバックエンド:
cd backend
python -m pytest test_api.pyフロントエンド:
cd frontend
npm run lint
npm run build管理対象に含めるもの:
- アプリケーションコード
- 仕様書・開発ドキュメント
package-lock.jsonなど再現性に必要なロックファイル- サンプルデータ
管理対象に含めないもの:
frontend/node_modules/backend/venv/frontend/dist/backend/partomate.db*data/backend/uploads/__pycache__/.DS_Store.env*や認証情報
- 既存のFastAPI + React構成を維持します。
- 画面固有のロジックはコンポーネント内に置き、複数画面で使う表示・計算処理は
frontend/src/utils/へ寄せます。 - 在庫数量と商品構成数量は小数を許容します。
- 通貨換算は将来的に設定APIへ寄せる前提で、フロントでは共通ユーティリティ経由にします。
- 破壊的なDBマイグレーションは避け、既存データを保った追加型マイグレーションを優先します。