尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证GreenTrack GHG Management — オープンソースのGHG排出量の算定・可視化・レポーティングツール
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗公式サイト: https://g-track.org/ — 製品概要・導入事例・お問い合わせはこちら。
OpenGreenTrack は企業向けの温室効果ガス(GHG)排出量算定・可視化・管理プラットフォームです。Scope 1 / 2 / 3 を横断し、拠点別・カテゴリ別の排出量を集計して、経営層から現場まで意思決定に活かせるダッシュボードを提供します。
| 技術 | 役割 |
|---|---|
| Next.js(App Router) | フロントエンドフレームワーク。ファイルベースルーティング・Server Components |
| React | UIコンポーネント |
| TypeScript | 静的型付け |
| Supabase | バックエンド基盤(PostgreSQL / Auth / RLS) |
| Tailwind CSS + CSS Variables | 緑基調のデザイン(src/styles/globals.css) |
| recharts | グラフ・チャート描画 |
| lucide-react | アイコン |
| clsx | クラス名結合ユーティリティ |
依存ライブラリは最新安定版を使用します(プレリリース版は不可)。バージョン方針・開発規約の正本は AGENTS.md を参照してください。
アーキテクチャの全体像は docs/architecture.md、ディレクトリ構成は docs/directory-structure.md を参照してください。
詳しい手順は docs/setup-guide.md を参照してください。
セットアップ方法は、目的に応じて 2 つあります。
| 経路 | 用途 | 主な流れ |
|---|---|---|
| ローカルで動かす(推奨) | まず無料で試す、開発する | Docker + Supabase CLI → npx supabase start → npm run db:reset:demo → npm run dev |
| クラウドで運用する | チーム利用、本番利用 | Supabase プロジェクト作成 → npx supabase link --project-ref xxx → npx supabase db push --include-seed → .env.local にクラウドの値を設定 |
Docker をインストールできない会社 PC では、クラウドで運用する経路を選んでください。macOS / Windows でのターミナル操作や Docker 未導入時の対応も docs/setup-guide.md に記載しています。
| ツール | 必要なバージョン | 確認コマンド | 備考 |
|---|---|---|---|
| Node.js | 24 以上(package.json の engines で指定) | node -v | 満たさない場合 npm install 時に EBADENGINE 警告が出ます |
| npm | Node.js 24 同梱のもの | npm -v | |
| Git | 任意の最新版 | git --version | |
| Docker Desktop | ローカルで動かす場合のみ必要 | docker --version | クラウドで運用する経路では不要 |
上から順に実行してください(ローカルで動かす場合)。
| 順番 | 作業 | コマンド |
|---|---|---|
| 1 | リポジトリ取得と依存インストール | git clone → npm install |
| 2 | 環境変数ファイルのひな形を作る | cp .env.example .env.local |
| 3 | Supabase 起動 → DB 作成 → .env.local に値を記入 | npx supabase start → npm run db:reset:demo |
| 4 | 開発サーバー起動 | npm run dev |
手順 1: リポジトリを取得して、依存パッケージをインストールします。
git clone <リポジトリURL>
cd OpenGreenTrack
npm install
npm install時に lefthook が Git フック(pre-commit)を自動セットアップします。 以降、コミット時にステージした.ts/.tsxに自動でeslint --fixがかかり、CI が赤くなる前にローカルで整えられます。 どうしてもスキップしたい場合はgit commit --no-verifyを使えますが、同じ lint は CI 側でも実行されます。
手順 2: .env.example をコピーして .env.local を作ります。
cp .env.example .env.local
実際の値は次章「Supabase セットアップ」を実行すると得られます。 取得した値を、次の対応表のとおり .env.local に書き込んでください。
| 取得元の名前 | .env.local の変数名 |
|---|---|
API_URL(ローカル) / Project URL(クラウド) | NEXT_PUBLIC_SUPABASE_URL |
ANON_KEY(ローカル) / anon public(クラウド) | NEXT_PUBLIC_SUPABASE_ANON_KEY |
SERVICE_ROLE_KEY(ローカル) / service_role(クラウド) | SUPABASE_SERVICE_ROLE_KEY |
npx supabase status -o env で上記 3 つの名前(API_URL / ANON_KEY / SERVICE_ROLE_KEY)の値が表示されます。npx supabase start の画面表示は Project URL / Publishable / Secret というラベルで、.env.local の変数名とは異なるため、値の確認には -o env を使うのが確実です。.env.example はコミットして共有する(サンプル値のみ).env.local は機密情報を含むため、決してコミットしない(.gitignore 済み)SUPABASE_SERVICE_ROLE_KEY は管理者権限キーのため、サーバ側でのみ使用する(クライアントコードでの参照禁止)Tip: ローカルで動かす場合は、次のコマンドで
.env.localに貼り付けられる 3 行をそのまま出力できます。npx supabase status -o env \ --override-name api.url=NEXT_PUBLIC_SUPABASE_URL \ --override-name auth.anon_key=NEXT_PUBLIC_SUPABASE_ANON_KEY \ --override-name auth.service_role_key=SUPABASE_SERVICE_ROLE_KEY
手順 3: Supabase を起動して DB を作り、.env.local の値を埋めます。
ローカルで試す場合:
npx supabase start
npm run db:reset:demo # DB を作り直し、公式排出係数マスタ + デモデータを投入
npx supabase start が完了したら、環境変数 の対応表に従って .env.local の 3 つの値を埋めてください(値は npx supabase status -o env で再表示できます)。
クラウドで運用する場合:
npx supabase link --project-ref <Project Ref>
npx supabase db push --include-seed # マイグレーション + 公式排出係数マスタを反映
supabase db reset はローカル DB を作り直すコマンド、supabase db push はクラウド DB へマイグレーションを反映するコマンドです。
Supabase CLI は npx supabase … で実行します(npm run db:* も内部で npx supabase を呼びます)。Homebrew 等で入れた supabase を併用する場合は、同じメジャーバージョンに揃えてください。
supabase/migrations/ はテーブル定義など DDL 専用(データは置かない)で、データは supabase/seeds/ にあります。supabase/seeds/production/(公式排出係数マスタ)は supabase db reset / supabase db push --include-seed で自動的に投入されます。supabase/seeds/demo/(デモ組織・デモユーザー [email protected] / password123 を含むデモデータ)は npm run db:reset:demo または npm run db:seed:demo で明示的に入れたときだけ投入されます。本番には入れないでください。手順の詳細とつまずきやすい点は docs/setup-guide.md、シードとコマンドの一覧は supabase/README.md を参照してください。
手順 4: .env.local を埋め終えたら起動します。
npm run dev
ブラウザで http://localhost:3000 にアクセスします(ポートは 3000 に固定)。
デモデータを投入した場合は [email protected] / password123 でログインできます。
| コマンド | 説明 |
|---|---|
npm run dev | 開発サーバー起動(http://localhost:3000) |
npm run build | 本番ビルド |
npm run start | 本番ビルドの起動 |
npm run lint | ESLint 実行 |
npm run test | テスト実行(vitest) |
npm run test:watch | テストをウォッチモードで実行 |
npm run test:e2e | E2Eスモークテスト実行(Playwright / ローカルSupabase必須) |
npm run test:e2e:ui | E2Eスモークテストを UI モードで実行 |
npm run test:e2e:install | E2E用のブラウザ(Chromium)をダウンロード(初回のみ) |
npm run db:reset | ローカル DB を作り直す(マイグレーション + 公式排出係数マスタ) |
npm run db:reset:demo | ローカル DB を作り直し、デモデータまで投入する |
npm run db:seed:demo | 起動中のローカル DB にデモデータ(supabase/seeds/demo/demo.sql)を投入する |
npm run db:seed:production | 起動中のローカル DB に公式排出係数マスタを(再)投入する |
npm run check:migrations | supabase/migrations/ にデータ操作(DML)が混入していないか検査する |
ドキュメントはすべて日本語です(ファイル名は英語 kebab-case に統一)。 All documentation is written in Japanese.
| ドキュメント | 内容 |
|---|---|
AGENTS.md | 開発規約の正本(AIエージェント・人間共通。必読) |
docs/architecture.md | Next.js + Supabase のアーキテクチャ |
docs/coverage-and-limitations.md | 算定の対応範囲と限界(対象ガス・Scope 2 の方式・Scope 3・検証されている範囲) |
docs/directory-structure.md | ディレクトリ構成規約 |
docs/setup-guide.md | ローカル / クラウドのセットアップ手順 |
docs/e2e-testing.md | E2Eスモークテスト(Playwright)の前提・実行方法 |
docs/functional-spec.md | 機能仕様(画面・URL・列挙型・バリデーション規則・算定ロジック概要) |
docs/database-design.md | DB 物理設計(テーブル・カラム定義) |
docs/calculation-logic.md | 算定ロジックの詳細(係数解決・単位換算・未算定の扱い) |
NEXT_PUBLIC_ プレフィックス付きのもののみSUPABASE_SERVICE_ROLE_KEY は RLS をバイパスする管理者キー。必ずサーバー側でのみ利用する.env.local を誤ってコミットした場合は、速やかに該当キーをローテーション(Supabase で再発行)するupload-quarantine バケット)へ直接アップロードし、サーバはパスだけを受け取ってストリーミングで読み取る。リクエストボディ制限のあるホスティング(Vercel 等)でも動作し、Node のメモリは数百MBで足りる(詳細は docs/setup-guide.md の 2-F)SECURITY.md の手順で報告してくださいバグ報告・機能提案・コード貢献を歓迎します 🌱
CONTRIBUTING.mdAGENTS.mdCODE_OF_CONDUCT.md本プロジェクトは Apache License 2.0 の下で公開されています。
docs/idea-scope3-spec.md| Scope 3 積上げ(IDEA データベース連携)の仕様 |