法令・省令・政令・ガイドラインの公示を検知し、「誰向けに/何がどう変わり/何をしないといけないか」を一覧・通知するアプリです。
- アーキテクチャ概要 — 全体構成(コンテキスト図)、データ構造(ER図)、環境構成案。実装チケットはここを参照。
- 現状仕様とギャップ整理 — e-Gov API の利用状況・AI レポート実装状況まとめ。
- Supabase 作成〜接続ハンズオン — プロジェクト作成から .env 設定・マイグレーションまで手順付き。
- Vercel 環境変数 / CLI デプロイ — Vercel 運用手順。
- ingest ローカル確認手順 — 通知フィルタのローカル動作確認。
.env.exampleをコピーして.envを作成し、DATABASE_URLを設定する。- DB にマイグレーションを適用する。
- Supabase 利用時:
- **Transaction mode プーラー(port 6543)**のままだと
prepared statement "s1" already existsが出ます。 - 次のどちらかを
.envのDIRECT_DATABASE_URLに設定してから実行してください。- Direct connection(
db.xxx.supabase.co:5432)— デフォルトは IPv6 のみ。自宅など IPv4 だけの環境ではつながらないことがあります。 - Session mode プーラー(
aws-0-xxx.pooler.supabase.com:5432)— IPv4 対応。ダッシュボードの「Connect」→「Session」で URI をコピー。ユーザー名はpostgres.[PROJECT_REF]形式です。
- Direct connection(
- **Transaction mode プーラー(port 6543)**のままだと
npx prisma migrate deploy
- Supabase 利用時:
- (任意)Slack 通知を使う場合は
.envにSLACK_WEBHOOK_URLを設定する。 - (任意・Issue #12)企業向けレポートで生成 AI を使う場合は
.envにOPENAI_API_KEYを設定する。未設定ならキーワードのみで動作する。
企業向けレポートの生成に OpenAI(gpt-4o-mini 等)を使う場合:
- キー取得: OpenAI API Keys で API キーを作成する。
- ローカル:
.envに次の 1 行を追加し、取得したキーを貼る(値は git に含めない)。OPENAI_API_KEY="sk-..." - 本番(Vercel): Vercel の Settings → Environment Variables で
OPENAI_API_KEYを追加し、Production 用の値を設定する。 - 使用量: OpenAI の Organization で Usage limits を設定しておくと、予算を超えて課金されない。
未設定の場合は生成 AI を使わず、キーワードベースの判定のみでレポート相当を出す。
e-Gov からのデータ取得(ingest)は本番では Vercel Cron で一日1回 実行されます。ローカルで同じ処理を試す方法は次のとおりです。
-
開発サーバーを起動
npm run dev
-
手動で 1 日分だけ実行(ブラウザまたは curl)
- 例: 過去の実在する日付で試す
curl "http://localhost:3000/api/ingest/laws?date=20230201"- 日付を省略すると「当日」で実行されます。
-
複数日分をスクリプトで実行(改正前全文取得あり・時間がかかります)
npm run refresh:ingest -- 20230201 20230207
-
Cron エンドポイントをローカルで試す(オプション)
.envにCRON_SECRET=任意の文字列を追加し、同じ文字列で Authorization を付けて呼ぶ。
curl -H "Authorization: Bearer 任意の文字列" "http://localhost:3000/api/ingest/cron"
- このエンドポイントは「UTC の前日」分を 1 日分だけ取り込みます。
本番(Vercel)では vercel.json の cron で毎日 22:00 UTC(日本時間 7:00)に /api/ingest/cron が呼ばれます。Vercel の Environment Variables に CRON_SECRET を設定してください。
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.