Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗配送業務のすべてを、ひとつの画面で。
従業員5〜30名の配送会社向けの統合業務管理システムです。Excel・紙・ホワイトボードで管理されがちな配送案件・配車・ドライバー・車両・荷主・売上を一元管理し、ドライバーはスマートフォンから配送ステータスを更新できます。
▶ デモ:https://delivery-manager-azure.vercel.app(登録不要。ログイン画面の「管理者として体験」「ドライバーとして体験」からすぐに触れます)
| 配車ボード(ドラッグで割り当て・時刻変更) | 配送案件(検索・CSV 入出力) |
|---|---|
| 売上・利益分析 | 荷主の請求・未請求 |
| 案件の詳細(ステータス履歴・担当) | 設定(営業所・操作履歴) |
ドライバー画面(スマートフォン)
スクリーンショットは、アプリを起動した状態で
BASE_URL=http://localhost:3000 npm run screenshotsを実行すると撮り直せます(新しいデモ環境を作って撮影します)。
管理者(経営者・配車担当)
ドライバー(スマートフォン)
| 分類 | 採用 | ライセンス |
|---|---|---|
| フレームワーク | Next.js 16(App Router・Server Actions)/ React 19 / TypeScript | MIT |
| UI | Tailwind CSS 4 / shadcn/ui(Radix UI)/ lucide-react / sonner | MIT・ISC |
| DB | PostgreSQL(公開環境は Neon)/ postgres.js | PostgreSQL License・MIT・Unlicense |
| ログイン | アプリ内で実装(Node.js 標準の scrypt・HttpOnly Cookie のセッション) | — |
| グラフ・地図 | Recharts / Leaflet + OpenStreetMap | MIT・BSD-2-Clause(地図データ © OpenStreetMap contributors, ODbL) |
| フォーム・検証 | React Hook Form + Zod | MIT |
| その他 | @dnd-kit/core(ドラッグ)/ Papa Parse(CSV) | MIT |
| テスト | Vitest / Playwright | MIT・Apache-2.0 |
依存関係は必要なものに絞っています(API キーや有料契約が必要なライブラリ・サービスは使っていません)。
当初は Supabase(PostgreSQL・Auth・Realtime)で作り、公開の段階で Neon(PostgreSQL)+アプリ内のログインに切り替えました。DB の設計(RLS・DB 関数・マイグレーション)はそのままで、auth.uid() などの関数を db/bootstrap.sql で用意しています。
会社を19社(案件 118,714件)に増やした状態で、各画面のデータ取得を管理者・ドライバーの権限で計測しました(ローカルの PostgreSQL 16、scripts/dev/perf.ts)。
| 画面 | データ取得 |
|---|---|
| すべての画面 | 2〜50 ms |
| 配送案件の一覧(検索・件数を含む) | 44 ms |
| CSV 書き出し(1社の全案件 約6,000件) | 122 ms |
X-Frame-Options: DENY などのセキュリティヘッダー= + - @ で始まる値を無害化DEMO_CREATE_LIMIT_PER_HOUR)DEMO_MAX_ACTIVE、既定 30)を設け、24時間後に自動削除します。「デモを終了する」を押すとその場で削除しますaudit_logs)に記録しますPostgreSQL 16 と Node.js 22 があれば動きます。
npm install
cp .env.example .env.local # DATABASE_URL をローカルの PostgreSQL に合わせる
npm run db:local:reset # DB 作成 → ロールと auth スキーマ(db/bootstrap.sql)→ マイグレーション
npm run db:seed # デモデータ(Seed 値で再現可能)
npm run db:verify # データの整合性チェック(21項目)
npm run dev # http://localhost:3000
ログイン画面の「管理者として体験」「ドライバーとして体験」から操作できます。Seed で作るアカウント:[email protected] / demo-admin-2026、[email protected] / demo-driver-2026。
npm run typecheck
npm run lint
npm test # 単体テスト・DB テスト(220件)
npm run test:e2e # ブラウザでの E2E テスト(PC 15件・スマートフォン 8件)
| 種類 | 主な内容 |
|---|---|
| DB テスト | 管理者とドライバー・会社間の権限分離(RLS と表の権限)、ステータス遷移、画面間の数字の一致、マスタと請求のルール、CSV 入出力、通知、同時編集、デモデータの整合性、現在地の送信・停止と見える範囲、ログインの情報(セッション等)が利用者の権限から見えないこと、マイグレーションの再実行 |
| 単体テスト | ステータス遷移、配車ボードの配置計算、CSV の解析、入力チェック、CSP、デモデータの配車(予定が重ならない)、パスワードの保存と照合、公開環境の設定の確認、デモ用の模擬位置の計算 |
| E2E テスト | ログイン・ログアウト(ログアウトした Cookie が使えないこと)、デモの終了、案件の登録・編集・削除、配車ボードでの割り当て、ドライバーのステータス更新と売上への反映、権限(未ログイン・ドライバー・他のドライバーの案件)、CSV の書き出しと取り込み、スマートフォンのメニュー操作と横はみ出し、位置情報の共有から管理者の地図への表示、離席中の自動更新の停止 |
E2E テストはテストごとに専用のデモ会社を作り、終わったら削除します。画面で JavaScript のエラー(CSP の違反を含む)が出たテストは失敗にします。GitHub Actions では、型チェック・Lint・マイグレーションとデモデータの検証・単体テストと DB テスト・ビルド・E2E テスト(ビルドしたアプリを next start で起動)を順に実行します。
Vercel・Neon のプランや利用規約(商用利用の可否、無料プランの制限)は、公開前にご確認ください。どちらも無料プラン(クレジットカード不要)で動きます。
作業は Vercel の画面だけで完結します。DB の準備(マイグレーション・見本の会社の作成・整合性チェック)は、本番の公開(Production デプロイ)のたびにビルドの前で自動的に行います(npm run vercel-build → scripts/deploy/vercel-build.ts)。プレビュー(ブランチごとの公開)では DB を変更しません。
DATABASE_URL・DATABASE_URL_UNPOOLED が自動で設定されます| 変数 | 内容 | 公開範囲 |
|---|---|---|
SEED_LOGIN_PASSWORD | 見本の会社にログインするアカウント([email protected]・[email protected])のパスワード。12文字以上。README の既定パスワードは使えない | サーバー専用 |
CRON_SECRET | 期限切れデモの削除(Vercel Cron)の認証用。16文字以上のランダムな文字列 | サーバー専用 |
NEXT_PUBLIC_MAP_TILE_URL | 地図タイルの URL(任意。アクセスの多い本番では契約したタイル配信を推奨) | ブラウザに公開してよい |
vercel.json の crons).github/workflows/production-e2e.yml)。テストで作ったデモは画面の「デモを終了する」で削除します。リポジトリの Secrets に E2E_LOGIN_PASSWORD(SEED_LOGIN_PASSWORD と同じ値)を登録すると、メールアドレスとパスワードでのログインも確かめますアプリのサーバー(Vercel Functions)は DB と同じシンガポール(sin1)で動かします(vercel.json)。Neon には東京のリージョンがないため、DB との往復を短くするほうを優先しています。
Neon の無料プランは計算時間が月 100 CU 時間(最小の 0.25 CU なら約 400 時間)で、5 分間問い合わせがなければ DB が止まり、その間は計算時間を使いません。画面を開いたまま席を離れても DB が止まるよう、10 分操作がなければ自動更新(30秒ごとの再取得・現在地・遅延の確認)を止め、操作すると再開します。
NEXT_PUBLIC_MAP_TILE_URL に契約したタイル配信サービスの URL を設定してください| フェーズ | 内容 |
|---|---|
| Phase 1 基盤 | レイアウト・DB 設計(RLS)・デモデータ・ログインとデモ体験 |
| Phase 2 コア | ダッシュボード・配送案件・配車ボード・ドライバー画面・連携 |
| Phase 3 管理 | ドライバー・車両・荷主(請求・未請求)・売上と利益の分析・経費 |
| Phase 4 付加価値 | 配送マップ・通知・CSV 入出力・同時編集とオフライン対策 |
| Phase 5 仕上げ | 権限の締め直しとセキュリティヘッダー・設定画面と操作履歴・エラー処理・性能確認・レスポンシブ・E2E テスト |