問い合わせ受付から見積、受注、制作進行、納品、入金確認までを一元管理する軽量な Web アプリケーションです。小規模な制作業務や個人事業の案件管理を想定しています。
- 問い合わせ受付、対応状況、次回確認日の管理
- 見積、受注、制作中、確認中、納品済み、入金待ちの案件ステップ管理
- 完了案件とボツ案件の一覧管理
- 本日対応すべき問い合わせ・案件のダッシュボード
- 案件スケジュールのガントチャート表示
- 全体検索と詳細パネル
- クライアント、担当者、申し送り、契約・約束事、関連履歴の管理
- SQLite / XLSX バックエンド対応
- テーマ切替、ロゴ差し替え、区分バッジ表示設定
- Python 3.10+
- FastAPI
- Jinja2
- SQLite
- pandas / openpyxl
- Vanilla JavaScript / CSS
git clone <your-repository-url>
cd pims
python -m venv .venv
source .venv/bin/activate
pip install fastapi uvicorn jinja2 pandas openpyxl python-multipart
cp config.example.json config.jsonconfig.json の db_dir と db_file を自分の環境に合わせて編集します。
{
"system_name": "案件管理システム",
"theme_id": "default",
"db_dir": "./data",
"db_file": "app.db",
"db_backend": "sqlite",
"logo_path": "",
"notification": "none",
"auto_sort_on_status_change": true,
"show_co": true
}データベースは画面の 設定 > データ > 新規作成 から作成できます。起動後、ブラウザで http://127.0.0.1:8001 にアクセスしてください。
uvicorn main:app --host 0.0.0.0 --port 8001| Key | Description |
|---|---|
system_name |
画面上部に表示するシステム名 |
theme_id |
テーマ ID |
db_dir |
データファイルを置くディレクトリ |
db_file |
データファイル名 |
db_backend |
sqlite または xlsx |
logo_path |
カスタムロゴのパス |
notification |
通知設定 |
auto_sort_on_status_change |
ステータス変更後に自動並び替えするか |
show_co |
区分バッジを表示するか |
config.json、データベース、XLSX、ログ、アップロードされたロゴは環境固有ファイルです。Git には含めないでください。
python -m py_compile main.py routers/uketsuke.py routers/anken.py routers/clients.py routers/settings.py sqlite_handler.py data_handler.py config_handler.py
python -c "from fastapi.testclient import TestClient; import main; c=TestClient(main.app); paths=['/uketsuke','/uketsuke?tab=kyou','/uketsuke?tab=search','/clients','/settings']; [print(p, c.get(p).status_code) for p in paths]"This application does not include built-in user authentication or authorization. Do not expose it directly to the public internet without adding authentication, HTTPS, access control, and a backup strategy.
MIT License