﻿========================================================================
  市民オンライン手続きポータル  Version 0.5.0
========================================================================

  ソフト名     : 市民オンライン手続きポータル
  バージョン   : 0.5.0
  作 者        : highdefinitionaudiodriver
  動作環境     : Windows 10/11, macOS 12+, Linux (Ubuntu 20.04+) / Node.js 20 以上
  ライセンス   : MIT License（フリーソフト／オープンソース）
  種 別        : フリーソフト
  作成日       : 2026-06-07

------------------------------------------------------------------------
■ ソフトの説明 / 使用方法（README より）
------------------------------------------------------------------------

市民オンライン手続きポータル（citizen-portal）

マイナンバーカードによる公的個人認証（JPKI）で本人確認し、来庁せずにスマホ・タブレット・パソコンから行政手続きができる、市民向けポータルのリファレンス実装です。

本来は役所の窓口に行かないとできない手続きを、全21業務分まとめてオンライン化しています。市民は来庁せずに、スマホ・パソコンから手続きを完結できます。

対応している手続き:

- 証明書のオンライン請求 — 住民票の写し・印鑑登録証明書・課税証明書・戸籍関係など（コンビニ交付／郵送）
- 届出・申請手続き（74種類・ライフイベント別7カテゴリ）
  - 引越し・住まい: 転出届／転入届／転居届／世帯変更届
  - 戸籍・証明: 出生届／死亡届／婚姻届／離婚届／印鑑登録の申請
  - 子育て・教育: 児童手当／児童扶養手当の認定請求／保育所入所申込／就学援助／就学・転校
  - 健康・医療・介護: 国保の加入喪失届／高額療養費／国民年金の免除／要介護認定／後期高齢者医療 限度額認定／健康診査・特定健診の受診申込
  - 福祉・くらし: 障害福祉サービス支給申請／生活保護の相談予約／火葬許可申請
  - 税・年金: 市・県民税の申告
  - 選挙・その他: 期日前投票の宣誓書（事前提出）

各申請は、バックオフィスの担当する標準準拠システムの /link/application/inbound（オンライン申請受付）へ連携されます。環境変数 BACKOFFICE_BASES（{"slug":"http://host:port"} のJSON）を設定すると実際に転送し、未設定時は受付のみ（職員が後続処理）として扱います。

特長

- マイナンバーカード認証（JPKIシミュレーション） — 利用者証明用電子証明書＋暗証番号（4桁）による本人確認をシミュレート。3回連続誤りでカードを一時ロック。
- モバイルファースト / レスポンシブ — スマホでは下部タブバー＋縦積みUI、タブレット/PCでは横並び・上部ナビへ自動で切り替わります（@media ブレークポイント: 600px / 900px）。
- PWA対応 — manifest.webmanifest ＋ Service Worker でホーム画面に追加・オフライン表示に対応。
- 来庁不要 — 証明書を選び、部数・受取方法（コンビニ交付／郵送）を指定してオンラインで請求。受付番号の発行と処理状況（受付→審査中→交付準備完了→交付済）の確認が可能。
- 依存ライブラリなし — バックエンドは Node.js 標準モジュールのみ、フロントはバニラJS。

動作環境

- Node.js 20 以上
- 近年のブラウザ（Chrome / Edge / Safari / Firefox、スマホ含む）

使い方


npm start          # http://localhost:8088 で起動
npm test           # APIテスト（node:test）
npm run smoke      # 認証ロジックのスモークテスト


ブラウザで http://localhost:8088 を開き、デモ用のカードでログインします。

| カード番号 | 暗証番号 | 氏名 |
|---|---|---|
| JPKI-0001 | 1234 | 山田 花子 |
| JPKI-0002 | 5678 | 鈴木 一郎 |

環境変数 PORT（既定 8088）、PORTAL_SECRET（トークン署名鍵）で構成を変更できます。

構成


apps/
  api/
    server.mjs   … HTTPサーバ（静的配信＋API）
    auth.mjs     … JPKIシミュレーション認証
    data/        … applications.json を永続化（gitignore）
  web/
    index.html   … モバイルファーストUI（viewport設定）
    app.js       … バニラJS SPA（ハッシュルーティング）
    styles.css   … レスポンシブCSS（mobile-first）
    sw.js / manifest.webmanifest / icon.svg … PWA
docs/openapi.yaml … API仕様
tests/            … node:test


主なAPI

| メソッド / パス | 説明 |
|---|---|
| POST /api/auth/card-login | マイナンバーカードでログイン |
| POST /api/auth/logout | ログアウト |
| GET /api/me | ログイン中の本人情報 |
| GET /api/certificate-types | 請求できる証明書の一覧 |
| POST /api/certificate-requests | 証明書のオンライン請求 |
| GET /api/certificate-requests | 自分の申請一覧 |
| GET /api/certificate-requests/{id} | 申請の詳細・処理状況 |
| POST /api/certificate-requests/{id}/cancel | 申請の取消 |
| GET /api/procedure-types | 届出・申請できる手続きの一覧 |
| POST /api/procedure-applications | 届出・申請（転出届ほか）のオンライン申請 |
| GET /api/procedure-applications | 自分の届出・申請一覧 |
| GET /api/procedure-applications/{id} | 届出・申請の詳細・処理状況 |
| POST /api/procedure-applications/{id}/cancel | 届出・申請の取消 |

位置づけ・免責

本リポジトリは学習・検証目的のリファレンス実装です。マイナンバーカード認証はシミュレーションであり、実際の公的個人認証サービス（JPKI）・地方公共団体情報システム機構（J-LIS）の基盤とは接続しません。本番利用の際は、実機のICカードリーダ／スマホNFCによるカード読み取り、署名検証、セキュリティ要件（個人情報保護・通信暗号化・監査ログ等）の実装が必要です。

ライセンス

MIT License

------------------------------------------------------------------------
■ 動作環境
------------------------------------------------------------------------
  Windows 10/11, macOS 12+, Linux (Ubuntu 20.04+) / Node.js 20 以上
  ※ オンライン専用ソフトではありません（ローカル環境で動作します）。

------------------------------------------------------------------------
■ インストール / アンインストール
------------------------------------------------------------------------
  ・本アーカイブを任意のフォルダに展開してください。
  ・詳細な起動手順は上記「ソフトの説明」および同梱の README を参照してください。
  ・アンインストールは展開したフォルダを削除するだけです（レジストリ不使用）。

------------------------------------------------------------------------
■ 転載・再配布について
------------------------------------------------------------------------
  本ソフトは MIT License のオープンソースです。同梱の LICENSE 条文に
  従う限り、自由に利用・改変・再配布できます。
  なお Vector 以外の配布サイトへの無断転載はご遠慮ください。

------------------------------------------------------------------------
■ 免責事項
------------------------------------------------------------------------
  本ソフトの使用によって生じたいかなる損害についても、作者は一切の
  責任を負いません。利用者ご自身の責任においてご使用ください。

------------------------------------------------------------------------
■ 著作権
------------------------------------------------------------------------
  Copyright (c) 2026 highdefinitionaudiodriver
  本ソフトは MIT License の下で公開されています。

------------------------------------------------------------------------
■ 連絡先 / サポート
------------------------------------------------------------------------
  作 者        : highdefinitionaudiodriver
  E-mail       : highdefinitionaudiodriver@gmail.com
  GitHub       : https://github.com/highdefinitionaudiodriver/citizen-portal.git
  不具合報告・ご要望は上記 E-mail もしくはリポジトリの Issues へ
  お願いいたします。

========================================================================
