Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
エンジニアスキルシートビューア
Translation pending
BusinessTypeScript · PLpgSQLGitHub @kouisoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
エンジニアのスキルシートを 閲覧・編集・PDF 出力 するための Web アプリケーションです。 スキルシートの正本(データの源)は Neon Postgres に保存します。1 枚のスキルシートは順序付きの「ブロック」の集まりとして持ち、表示時に Markdown へ組み立てて描画します。 • 閲覧(Viewer): スキルシートを Markdown として整形表示。目次(TOC)・アクティブ見出し追従つき • 編集(Builder): 編集者がブロック単位でスキルシートを作成・更新(Better Auth ログインが必要) • PDF 出力(Export): 表示中のスキルシートを PDF として書き出すRead the full README ↗
エンジニアのスキルシートを 閲覧・編集・PDF 出力 するための Web アプリケーションです。
スキルシートの正本(データの源)は Neon Postgres に保存します。1 枚のスキルシートは順序付きの「ブロック」の集まりとして持ち、表示時に Markdown へ組み立てて描画します。
src/db)VIEWER_CODE)リポジトリルートがそのまま Next.js のプロジェクトルート(パッケージは 1 つだけ)。
.
├── app/ # ルーティング(App Router: page.tsx / layout.tsx / route.ts)
├── src/
│ ├── component/ # コンポーネント(Markdown ビューア・PDF・UI 部品)
│ ├── context/ # React Context
│ ├── db/ # Drizzle ORM + Neon(スキルシートの正本 / Better Auth テーブル)
│ ├── hook/ # カスタムフック
│ ├── lib/ # 認証クライアント・tRPC クライアント・環境変数検証など
│ ├── server/ # サーバー専用ロジック(認証ゲート・セッション・tRPC router)
│ └── util/ # ユーティリティ関数
├── drizzle/ # マイグレーション(drizzle.config.ts はルート)
├── e2e/ # Playwright の E2E
├── script/ # CLI スクリプトと CI 用チェッカー
└── public/ # 静的ファイル(フォント等)
すべてのコマンドはリポジトリルートで実行します。
# 1. ランタイムの用意(mise で Node 22.x と pnpm を固定)
mise install
# 2. 依存インストール
pnpm install
# 3. DB を用意する(下の A または B。詳細は setup.md)
# 4. 開発サーバー起動(http://localhost:3000)
pnpm dev
手元に PostgreSQL 16+ がある環境では、ローカルスタックが DB 構築から権限付与まで全て行います。
sudo ./script/dev-local-stack.sh up
# PostgreSQL 起動 → drizzle migrations → 文書境界(skillsheet_private の関数群)の
# install → 接続 role への EXECUTE + principals 登録 → .env.local の生成まで行う。
NODE_EXTRA_CA_CERTS=$(./script/dev-local-stack.sh env | cut -d= -f2-) pnpm dev
cp .env.example .env # DATABASE_URL などを埋める
pnpm db:migrate
スキルシートの閲覧・編集は skillsheet_private スキーマの文書境界
(SECURITY DEFINER 関数群)を経由します。境界は pnpm db:migrate の対象外で、
未 install または権限不足のままだと /view が ACCESS_DENIED / 設定不備バナーになります
(Issue #373)。共有 DB では管理者側で次を適用してもらってください。
# 境界本体(未適用の DB のみ。詳細は doc/05-toc-and-deploy.md の「適用順序」)
psql "$ADMIN_DATABASE_URL" -X -v ON_ERROR_STOP=1 -f script/sql/install-skillsheet-read-boundary.sql
psql "$ADMIN_DATABASE_URL" -X -v ON_ERROR_STOP=1 -f script/sql/install-skillsheet-write-boundary.sql
# あなたの接続 role へ EXECUTE + principals 写像を付与(値は管理者が発行する)
psql "$ADMIN_DATABASE_URL" -X -v ON_ERROR_STOP=1 \
-v runtime_role='<接続 role 名>' \
-v runtime_password='<生成したパスワード>' \
-v owner_id='<SKILLSHEET_OWNER_ID>' \
-f script/sql/install-runtime-role.sql
詳細な手順・環境変数・デプロイは setup.md を参照してください。
/viewer-auth で閲覧コード(VIEWER_CODE)を入力/login で編集者(Better Auth)ログイン → /builder| コマンド | 説明 |
|---|---|
pnpm dev | 開発サーバー起動 |
pnpm build | 本番ビルド |
pnpm start | ビルド後のサーバー起動 |
pnpm lint | Biome でチェック(biome check .) |
pnpm format | Biome でフォーマット(biome format --write .) |
pnpm type-check | TypeScript 型チェック |
pnpm test | 全テスト(Vitest) |
pnpm test:e2e:local | 使い捨ての隔離 DB を立てて、Playwright と本番ビルドの Chrome/Chromium 検証を通す(pnpm test:e2e 単体は隔離 DB の外では起動しない)。test-results/e2e/ に証跡を保存 |
pnpm db:generate | スキーマからマイグレーション生成(Drizzle) |
pnpm db:migrate | マイグレーション適用 |
| ドキュメント | 内容 |
|---|---|
| doc/01-setup-and-routing.md | セットアップとルーティング(App Router / RSC) |
| doc/02-authentication.md | 認証の 2 系統(Better Auth 編集者 & HMAC 閲覧コード) |
| doc/03-github-api.md | データ層(Drizzle / Neon、ブロック保存、GitHub シード副系統) |
| doc/04-markdown-display.md | Markdown 表示(rehype パイプライン)と PDF 出力 |
| doc/05-toc-and-deploy.md | 目次(TOC / アクティブ見出し)と Vercel デプロイ |
| ドキュメント | 内容 |
|---|---|
| doc/dogfooding-test-spec.md | 全画面 dogfooding のテスト仕様書(元データ ↔ 正本 ↔ 画面の突合手順) |
| doc/dogfooding-result-20260804.md | 上記の実施結果と逸脱一覧 |
| doc/dogfooding-evidence/ | 実施結果が参照している証跡のテキスト分(JSON / サーバーログ) |
UNLICENSED