Skip to content

iruiru0605-coder/purchase-manual-library

Repository files navigation

取説ライブラリ

取説ライブラリ

取説ライブラリは、Amazon・楽天・メルカリなどで買った商品の取扱説明書PDF、保証情報、紙マニュアルの保管場所をまとめて管理するローカルWebアプリです。

購入履歴ページをコピーして貼り付けるだけで登録候補を作り、必要な商品だけ選んでライブラリ化できます。スプレッドシートではなく、見やすいアプリ画面で使うことを前提にしています。

License: MIT

画面イメージ

アプリ画面イメージ1 アプリ画面イメージ2

どんな人向け?

  • 家電、家具、工具、子ども用品、健康器具、車用品、ソフトウェアなどの説明書を探すのが面倒
  • Amazonや楽天の購入履歴から、登録したい商品だけまとめて取り込みたい
  • 公式PDFがあるものはPDF保存、紙しかないものは紙の保管場所を記録したい
  • 家族がスマホから「この商品の説明書どこ?」を探せるようにしたい

できること

運用フロー

  • 購入履歴ページのコピー貼り付けから登録候補を作る
  • CSVテンプレートをダウンロードして、確実に一括取り込みができる
  • 登録する商品、不要な商品、後で確認する商品を仕分ける
  • AIでメーカー、型番、カテゴリ、検索キーワードを補完する
  • 公式サイト優先で取扱説明書PDF候補を探す
  • 見つかったPDFをGoogle Driveまたはローカルに保存する
  • 公式PDFがない場合は、自分でスキャンしたPDFを後から追加する
  • 紙マニュアルの保管先を「カテゴリ BOX-番号 #連番」で自動作成する
  • 登録後も購入日、保証月数、カテゴリ、型番、紙の保管先、PDFを編集できる
  • 登録済み商品に製品画像を追加・差し替えできる(ファイルアップロード)
  • 同じWi-Fi内のスマホからライブラリを見る(Tailscale等のプライベートVPNを使えば外出先からも自分だけ安全に閲覧可能)

まず試す

難しい設定は後回しで大丈夫です。最初はGoogle Drive連携もAI設定も入れず、ローカル保存だけで動作確認できます。

1. 必要なもの

  • Mac または Windows
  • Node.js 22以降
  • npm

Node.jsを入れていない場合は、Node.js公式サイトからLTS版をインストールしてください。

2. GitHubから取得する

初心者向けの一番簡単な方法:

  1. このGitHubページの緑色の Code ボタンを押す
  2. Download ZIP を押す
  3. ZIPを展開する
  4. 展開した purchase-manual-library フォルダを開く

Gitを使える場合:

git clone https://github.com/iruiru0605-coder/purchase-manual-library.git
cd purchase-manual-library

3. インストールする

ターミナルまたはPowerShellで、アプリのフォルダに移動して実行します。

npm install

4. 起動する(Windows)

おすすめ:デスクトップアイコンから起動(通常はこちら)

最初に1回だけ、PowerShellでショートカットを作ります。

powershell -ExecutionPolicy Bypass -File .\scripts\install-windows-shortcut.ps1

デスクトップに 取説ライブラリ アイコンができます。以降はこのアイコンをダブルクリックするだけでアプリが起動し、ブラウザが自動で開きます(http://localhost:5174)。

開発者向け:ターミナルから起動

npm run dev

Local: http://localhost:5173/ が表示されたら起動成功です(開発モード)。ブラウザで http://localhost:5173/ を開きます。

アイコン起動(通常)=ポート 5174開発モード(npm run dev)=ポート 5173。スマホから見る場合はこの番号が重要です(次節)。

5. スマホから見る

アプリはPCで起動したまま使います。スマホから同じライブラリを閲覧できます。

  • 同じWi-Fi内(アイコン起動時): スマホのブラウザで http://(PCのIPアドレス):5174 を開く。PCのIPは、コマンドプロンプトで ipconfig を実行し「IPv4 アドレス」で確認します。
  • 外出先からも見たい場合: Tailscale(無料・プライベートVPN)をPCとスマホ両方に入れ、スマホで http://(PCのTailscale IP):5174 を開く。Tailscale IPはPCで tailscale ip -4 を実行して確認します。
  • npm run dev(開発モード)で動かしているとき: ポートが 5173 になります。起動時に表示される Network: のURL(5173)をスマホで開いてください。

6. 終了する

  • 開発モード(npm run dev)のとき:起動中のターミナルで Ctrl + C を押します。
  • アイコン起動のとき:アプリはバックグラウンドで動き続けます。完全に止めたい場合はタスクマネージャーで node を終了してください(普段は止めなくて大丈夫です)。

最初の登録例

CSVテンプレートで確実に取り込む(おすすめ)

貼り付け取り込みは便利ですが、サイトによってはうまく拾えないことがあります。確実に取り込むならCSVがおすすめです。

  1. アプリの 購入履歴Inbox を開き、テンプレートをダウンロード を押す(CSVひな形が落ちます)
  2. Excelやスプレッドシートで開き、サンプル行を書き換えて商品を入力
  3. 販売元Amazon / 楽天 / Yahoo! / メルカリ / ヨドバシ / その他 で入力(自動で表記が揃います)
  4. CSVを選択して 取り込む を押す

列: 商品名 / 購入日 / 価格 / 商品URL / 注文番号 / 販売元 / メーカー保証(月) / 延長保証(月) / 紙ファイル置き場 / メモ

楽天やAmazonの購入履歴を貼り付ける

  1. アプリの 購入履歴Inbox を開く
  2. 購入元を Amazon または 楽天 にする
  3. Amazonや楽天の購入履歴ページをブラウザで開く
  4. 1つの注文カード周辺を選択してコピーする
  5. アプリの 購入履歴ページを貼り付け に貼る
  6. 貼り付けから取り込む を押す

楽天の例:

注文日:
2025/02/06(木)
注文番号:
425489-20250206-0954621472
商品ページがありません
モニター 搭載 見守りカメラ ベビーモニター 赤ちゃん 見守り カメラ
5,999円

取り込み後、候補に商品名、購入日、注文番号、価格が入ります。

候補を確認する

登録候補ごとに、次のどれかを押します。

登録する
不要
後で確認
削除

食品や消耗品など、説明書管理が不要なものは 不要 または 削除 で構いません。

PDFを探して登録する

候補詳細で順番に押します。

AI補完
候補を探す
選択したPDFを保存して登録

AI設定が未入力でも、商品名からできる範囲で推定します。

ライブラリでできること

ライブラリ タブでは、登録済み商品を検索・編集できます。

  • 商品名、型番、カテゴリ、紙マニュアル保管先で検索
  • カテゴリのプルダウン絞り込み
  • 購入日、保証月数、型番、カテゴリ、メモを後から修正
  • 商品カードに製品画像を追加、差し替え、削除(ファイルアップロード)
  • PDFを後からアップロード
  • 古いPDFを削除して入れ替え
  • 誤って登録した商品を削除
  • 削除したローカルPDF・製品画像を削除予定フォルダへ退避し、後から確認して手動削除できる

公式PDFが見つからない場合:

  1. 紙マニュアルをスキャンしてPDFにする
  2. ライブラリ の該当商品を開く
  3. PDF追加・入れ替え からPDFを追加する

紙マニュアルをそのまま箱に入れておく場合は、紙マニュアル保管先 を見れば場所が分かります。

キッチン家電 BOX-01 #001
工具 BOX-06 #003
子ども用品 BOX-07 #014

Google Drive設定

Google Drive連携は任意です。設定しない場合、PDFはPC内の .manual-library/archive/ に保存されます。

Driveに保存したい場合は、アプリの 設定 > Google Drive に手順を表示しています。画面内の説明に沿って、Google CloudでOAuthクライアントIDとシークレットを作成してください。

Drive保存を使う場合は、設定画面の PDFの保存先Drive保存 に切り替えてから 設定を保存 し、Google Driveにログイン で認証してください。Drive保存がオンでも未認証の場合は、PDFは自動でローカルへ保存されます(Driveには入りません)。

登録するRedirect URI:

http://localhost:5174/api/google/oauth/callback

Googleログイン時に アクセスをブロック403: access_denied が出る場合は、Google Cloud Consoleの Google Auth platform > Audience で、Test users にログイン中のGoogleアカウントを追加してください。個人利用ではGoogle審査に出さず、テストユーザー登録のままで使えます。

Drive保存イメージ:

Google Drive/
└ 取扱説明書ライブラリ/
   └ キッチン家電/
      └ P0001_Panasonic_食器洗い乾燥機_NP-TZ300-W/
         └ 取扱説明書_取扱説明書.pdf

AI設定

AI補完も任意です。未設定でも基本操作はできます。

DeepSeekを使う例:

Provider名: DeepSeek
API Base URL: https://api.deepseek.com
Model Name: deepseek-v4-flash
API Key: 自分のAPIキー

アプリの 設定 > LLM設定DeepSeek v4 推奨値を入力 ボタンがあります。押すと、APIキー以外の値を自動入力できます。

データと安全性

ローカルデータは次に保存します。

.manual-library/
├ db.json
├ settings.json
├ google-tokens.json
├ archive/
└ trash/

このフォルダは .gitignore 済みなので、GitHubには入りません。

ただし、settings.json にはLLM APIキーとGoogle OAuth Client Secret、google-tokens.json にはGoogle Drive接続トークンが入ります。保存時は本人ユーザーだけが読めるファイル権限にしますが、平文保存です。

このアプリは家のLAN内で使う前提です。ルーターのポート開放、ngrok、Cloudflare Tunnelなどでインターネット公開しないでください。

商品やPDF情報を削除したとき、ローカル保存済みのPDF・製品画像はすぐ完全削除せず .manual-library/trash/ に移動します。アプリの 設定 > 削除予定フォルダ から場所を確認し、必要に応じて手動で削除してください。Google Drive保存済みPDFはDrive内の _削除予定 フォルダへ移動します。

よくある困りごと

localhostで接続が拒否されました

アプリが起動していません。ターミナルで次を実行してください。

npm run dev

Windowsでデスクトップアイコンを作成済みの場合は、デスクトップの 取説ライブラリ アイコンをダブルクリックして起動できます。

Failed to fetch と出る

画面は開いているが、裏側のAPIサーバーが止まっている可能性があります。いったんターミナルで Ctrl + C を押し、もう一度起動してください。

npm run dev

マニュアルPDFを開くとエラーになる

最新版では日本語ファイル名のローカルPDFを開けるよう修正済みです。古い状態で起動している場合は、アプリを再起動してください。

楽天の貼り付けで日付しか出ない

最新版では、楽天の 注文日注文番号 が別行になる形式に対応済みです。アプリを再起動して、注文カード周辺を少し広めにコピーしてください。

詳しいドキュメント

現在のMVP範囲

  • ローカルPCで動くWebアプリ
  • 購入履歴の貼り付け取り込み
  • CSV取り込み
  • 登録候補レビュー
  • LLM補完
  • 公式PDF候補探索
  • Google Drive / ローカル保存
  • PDF手動アップロード
  • 紙マニュアル保管先管理
  • LAN内スマホ閲覧

バーコード読み取り、購入サイトへの自動ログイン、保証期限通知は後続バージョンで扱います。なお、保証書等に個人情報が含まれるため、インターネットへの一般公開は想定していません(自宅外からの個人利用はTailscale等のプライベートVPNを推奨)。

開発者向け

npm test
npm run build

ライセンス

MIT License

About

購入履歴の貼り付けやCSVから取扱説明書PDF・保証情報・紙マニュアル保管先を管理するローカルWebアプリ

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors