システム アーキテクチャ

J-REIT 取引・マクロ指標・不動産ニュースを集約する静的サイトの構成図。

1. データフロー

外部ソース → loader/ → Google Sheets / viewer/*.json → Cloudflare Pages。 ニュース系(TDnet / NFM / マクロ)と取引マスタは独立経路。

flowchart LR
    IR["各REIT IR
japan-reit.com"] TD["TDnet
適時開示"] NFM["日経不動産
マーケット"] MACRO["三鬼 / 不動産経済研
JREI"] GSI["国土地理院"] LOADER["loader/
main.py + scrapers"] SHEETS[("Sheets
取引マスタ")] REPO[("repo
viewer/*.json")] UI["Cloudflare Pages
index / board /
dev-map / glossary"] IR --> LOADER GSI --> LOADER LOADER --> SHEETS --> LOADER LOADER --> REPO TD --> LOADER NFM --> LOADER MACRO --> LOADER REPO --> UI

2. 公開ページ

ページ役割参照JSON
index.htmlマクロ指標+ニュース2列+リサーチ巡回ルート+GPT連携macro / disclosures / nfm_news
board.htmlREIT取引ボード(フィルタ+カード+Leaflet地図)data.json
dev-map.html開発マップ(用途地域+容積算定+周辺NOI)MLIT XKT API (Pages Functions経由)
glossary.html用語ナレッジ(dev-mapからディープリンク)
architecture.htmlこのページ

3. 収集ジョブ

loader/main.py のサブコマンドを GitHub Actions cron で実行し、main へ直接コミット。

Workflow頻度 (JST)出力
dump-disclosures.yml毎日 19:00disclosures.json (TDnet 直近30日)
dump-nfm.yml毎日 19:00nfm_news.json (NFM 公開見出し)
fetch-macro.yml毎月macro_data.json
fetch-tdnet.yml平日 23:00新規開示 → Issue 作成(手動レビュー)

手動コマンド: add (取引追加) / fix (訂正・空欄化) / export (Sheets→data.json)。外部ID = sha1(REIT+物件名+取引日+種類)[:16] で冪等。

4. データソース

ソース用途URL
TDnet 適時開示J-REIT 取得/譲渡リリースrelease.tdnet.info
日経不動産マーケット取引・開発ニュース見出しnfm.nikkeibp.co.jp
各REIT IR / japan-reit.com取引マスタ補完 (PDF)eir-parts.net / xj-storage 等
三鬼商事主要都市オフィス空室/賃料e-miki.com
不動産経済研究所新築分譲マンション動向fudousankeizai.co.jp
日本不動産研究所期待利回り / 価格指数jrei.jp / reinet.or.jp
MLIT XKT用途地域 GeoJSONnlftp.mlit.go.jp
国土地理院住所→緯度経度msearch.gsi.go.jp