訪問型営業パーソン向け汎用CRM。保険外交員‧化粧品販売員など「個人事業主的な販売員」全般をターゲットとする単独アプリ
- TypeScript 60.6%
- Python 35%
- CSS 2.1%
- Shell 1.1%
- JavaScript 1%
- Other 0.2%
- LICENSE: 個人名義の権利表記(事業譲渡時のDD向け。無断複製・再頒布・商用利用の禁止を明記) - THIRD_PARTY_NOTICES.md: npm/PyPI全依存+同梱MLモデルのライセンス一覧。GPL/AGPL/LGPL系はnpm・venv全件スキャンでゼロ件を確認 - .github/workflows/ci.yml: push/PRごとにフロント(tsc/vitest/build)とバックエンド(依存インストール+起動import)を検証。 GitHubミラーで動作、Forgejo側はランナー登録で有効化可。submodule(200MB)はCIでは取得しない Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| backend | ||
| deploy | ||
| public | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| CLAUDE.md | ||
| eslint.config.js | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| server.cjs | ||
| THIRD_PARTY_NOTICES.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
fieldcrm
訪問型営業パーソン(保険外交員・化粧品販売員など個人事業主的な販売員)向けの汎用CRM。 現場管理アプリ genba のインフラ・共通UI・ガントビューを流用した別プロダクト。個人利用(1ユーザー1環境・SQLite)前提。
構成
ブラウザ ──▶ server.cjs (:3007, dist配信 + /api→:8080プロキシ)
└─▶ FastAPI (:8080) ──▶ SQLite (fieldcrm.db)
- フロント: React 19 + Vite + TypeScript + Tailwind v4
- バックエンド: FastAPI + SQLAlchemy 2.0 + SQLite、認証 JWT + bcrypt
- デザイン: iOS/リキッドグラス調。デフォルトテーマ Autumn(テラコッタ/クレイ/アイボリー)+ パステル/オーシャン/Field/ノクターンの計5種
- レシートOCR: 標準はローカルOCR(ocr-mb、外部API不要)。Gemini APIキー設定時は読み取れなかった場合のフォールバックとして再読み取りする(設定でON/OFF可、既定ON)
セットアップ
共通(初回のみ)
git clone <repo-url>
cd fieldcrm
git submodule update --init
git submodule update --init はレシートOCR用の backend/vendor/ocr-mb を取得する。初回は約200MBダウンロードされる。
バックエンド
cd backend
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
./venv/bin/uvicorn app.main:app --host 127.0.0.1 --port 8080
起動時に SQLite テーブルを作成し、既定オーナーを投入する。
- 既定ログイン:
owner@fieldcrm.local/fieldcrm(SEED_OWNER_EMAIL/SEED_OWNER_PASSWORDで変更可) - 本番は
JWT_SECRETを設定すること。Google ログイン利用時はGOOGLE_CLIENT_ID
フロント
npm install
npm run dev # 開発 (:3007、/api を :8080 へプロキシ)
npm run build # 本番ビルド → dist/
npm run test # vitest
node server.cjs # dist を配信 + /api プロキシ
実装状況(P0 = 骨格)
- ✅ フロント土台(ビルド構成・共通UI・ガント・テーマ)
- ✅ テーマ5種(Autumn=デフォルト / パステル / オーシャン / Field / ノクターン)
- ✅ バックエンド骨格 + SQLite
- ✅ ローカルパスワード + 任意 Google 認証(JWT)
- ⏭ 次: 見込み客(Prospect) / フェーズ(Phase) / 経費(Expense) / 行動・XP / ガント・一覧・ダッシュボード
詳細な設計方針は CLAUDE.md を参照。