https://github.com/interactive-inc/open-karte
社内運用システム構築のためのリポジトリになります。
https://github.com/interactive-inc/open-karte
Last synced: 20 days ago
JSON representation
社内運用システム構築のためのリポジトリになります。
- Host: GitHub
- URL: https://github.com/interactive-inc/open-karte
- Owner: interactive-inc
- License: mit
- Created: 2026-05-18T06:30:37.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-07-03T12:36:14.000Z (21 days ago)
- Last Synced: 2026-07-03T14:25:16.476Z (21 days ago)
- Language: TypeScript
- Size: 5.07 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# open-karte
オープンソースの、社内事務手続きのためのセルフホスト基盤。
Claude などの AI エージェントから CLI で呼ばれることを前提に設計し、GUI はおまけ。
従業員台帳を土台に、「人・時間・物・お金・成長」をめぐる申請・承認・記録を束ねる。
扱うのは事実の記録・更新・検索と、それにまつわる申請ワークフローまで。
給与・税・労務のような重い計算や法的判定は持たず、外部に委ねる。
TypeScript のモノレポ。同じ業務を CLI と API、どちらからでも実行できる。
```
open-karte/
├── api/ # API サーバ (Hono / Cloudflare Workers)
├── cli/ # karte コマンド (Hono / bun)
├── web/ # Web UI (Next.js)
├── Makefile
├── package.json # bun workspaces (api, cli, web)
└── README.md
```
ワークスペースの構成は以下のとおり。
- `api` … HTTP API。Hono + Cloudflare Workers (wrangler)
- `cli` … `karte` コマンド。引数を POST に変換しローカル Hono ルートで処理し、API を叩く
- `web` … Web UI。Next.js + React + Tailwind + shadcn
## 必要環境
- [bun](https://bun.sh)
## セットアップ
```sh
make dev # bun install して portless で全アプリ起動
```
個別に動かす場合は `make help` を参照。
起動後は web(`https://karte.open.localhost`)に開発用シードのアカウントでログインできる。メールは `you+e001@example.com`、パスワードは `password`(`E001` が admin)。seed は全ユーザー共通の既知パスワードで、本番には投入しない。
## CLI
```sh
cd cli
bun install
bun link # karte コマンドを PATH に通す
karte --help
```
各コマンドは `~/.karte/config.json` のトークンで API を叩く。接続先は
環境変数 `KARTE_API`(既定 `http://127.0.0.1:8787`)で上書きできる。
```sh
karte login --email you@example.com --password ****
karte whoami
karte employee search --q プログラマ
karte app inbox
```
コマンド体系の詳細は [`cli/README.md`](cli/README.md) を参照。
## API
```sh
cd api
bun install
bun run dev # wrangler dev
bun run deploy # 本番デプロイ
```
URL は「資源は複数形名詞、状態遷移は資源配下の動詞 POST」で統一している。
ルート一覧は `api/src/app.ts` を参照。
シードデータ(`api/seeds/`)は開発専用。全ユーザーが同一の既知パスワードのため、
本番には投入しないこと。詳細は [`api/seeds/README.md`](api/seeds/README.md) を参照。
## Web
```sh
cd web
bun install
bun run dev # Next.js dev server
```
ログイン後の画面はドメインごとのルートに collocation されている。
詳細は [`web/README.md`](web/README.md) を参照。
## テストと検証
```sh
vp check # フォーマット + lint(リポジトリ全体)
cd api && bun test # API のテスト
cd cli && bun test # CLI のテスト
cd web && bunx tsc --noEmit # Web の型検査
```
api のルートを変更したら `cd api && bun run build:types` で型を再生成すると、
web の型付きクライアント(hc)が追従する。
## ドキュメント
プロダクトの仕様・用語・業務知識は [`.docs/`](.docs/index.md) に集約している。
- `architecture.md` … ワークスペース構成・レイヤ・認証・セキュリティ
- `features.md` … 利用者視点の機能一覧
- `sitemap.md` / `user-flows.md` … web の画面と導線
- `glossary.md` / `references/terms/` … 制度用語の定義
- `notes/handbook/` … 入社・休暇・経費などの手続きノート
## ライセンス
[LICENSE](LICENSE) を参照。