Skip to content

roflsunriz/povo-promo-code-notify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

povo プロモコード管理

povo 2.0のプロモコードを管理するWindows 11向けデスクトップアプリケーションです。

概要

povo 2.0では「データ使い放題」などのトッピングをプロモコードで取得できます。複数のコードを管理し、入力期限・有効期限を追跡することで、回線が途切れることなくサービスを継続利用できます。

このアプリは以下の課題を解決します:

  • 複数のプロモコードの一元管理
  • コード入力期限の見落とし防止
  • 使用中コードの有効期限切れの事前通知
  • 連続カバレッジ(回線が途切れない期間)の可視化

機能

ダッシュボード(概略タブ)

  • 連続カバレッジ表示: 現在の回線有効期間と残り時間をリアルタイム表示
  • ギャップ警告: カバレッジが途切れる可能性がある場合に警告を表示
  • 次に開始すべきコード: 未使用コードから最適な候補を提案
  • 使用中コード一覧: アクティブなコードの状態を一覧表示
  • 統計情報: 全コード数、使用中、未使用、完了・期限切れの集計

コード一覧タブ

  • 全てのプロモコードを一覧表示
  • ステータス別のフィルタリング(未使用/使用中/有効期限切れ/入力期限切れ)
  • コードの詳細情報(入力期限、有効期限、有効期間)の確認

登録タブ

  • メール本文からの自動抽出: povoから届くメールの本文を貼り付けるだけで、コード・入力期限・有効期間を自動抽出
  • 手入力: 自動抽出できない場合は手動でコードを追加可能
  • 一括登録: 複数コードをまとめて登録
  • 並べ替え: ドラッグ&ドロップでコードの使用順序を調整

編集タブ

  • 登録済みコードの編集・削除
  • ステータスの手動変更(使用開始/使用中断など)
  • コード順序の変更

通知タブ

  • 利用終了通知: 使用中コードの有効期限が近づくと通知(既定: 24時間前、3時間前、1時間前、30分前)
  • 公式入力期限通知: 未使用コードの入力期限が近づくと通知(任意設定)
  • カスタム閾値: 通知タイミングを自由にカスタマイズ
  • テスト通知: 通知機能の動作確認
  • データエクスポート/インポート: JSON形式でのバックアップと復元

使い方

初回セットアップ

  1. Releases から最新のインストーラー(povo-promo-code-notify-*-setup.exe)をダウンロード
  2. インストーラーを実行してアプリをインストール
  3. アプリを起動

コードの登録

  1. povoからプロモコードが届いたメールを開く
  2. メール本文をコピー(Ctrl+A → Ctrl+C)
  3. アプリの「登録」タブを開く
  4. テキストエリアに貼り付け(Ctrl+V)
  5. 「抽出」ボタンをクリック
  6. 抽出結果を確認し、必要に応じて編集
  7. 「登録」ボタンをクリック

日常の運用

  1. アプリを起動しておく(タスクトレイに常駐)
  2. ダッシュボードで連続カバレッジを確認
  3. 通知が届いたら、次のコードを povo アプリで入力
  4. 「編集」タブで使用開始したコードのステータスを更新

通知設定のカスタマイズ

  1. 「通知」タブを開く
  2. 利用終了通知の閾値を有効/無効に切り替え
  3. 必要に応じてカスタム閾値を追加
  4. 「設定を保存」をクリック

データのバックアップ

  1. 「通知」タブを開く
  2. 「エクスポート」をクリック
  3. 保存先を選択してJSONファイルを保存

データの復元

  1. 「通知」タブを開く
  2. 「インポート」をクリック
  3. バックアップしたJSONファイルを選択
  4. 確認ダイアログで「インポート実行」をクリック

技術スタック

  • Electron - デスクトップアプリフレームワーク
  • React - UIライブラリ
  • TypeScript - 型安全な開発
  • TailwindCSS - スタイリング
  • Vite / electron-vite - ビルドツール
  • Zod - バリデーション
  • Vitest - テストフレームワーク
  • Playwright - E2Eテスト

開発者向け情報

環境構築

前提条件

  • Node.js 22以上(LTS)
  • pnpm 10以上(Corepackで有効化)

セットアップ

# Corepack有効化
corepack enable

# 依存パッケージのインストール
pnpm install

# 開発サーバー起動
pnpm dev

開発コマンド

# 開発サーバー起動(HMR有効)
pnpm dev

# リンター実行
pnpm lint

# リンター自動修正
pnpm lint:fix

# 型チェック
pnpm type-check

# フォーマット
pnpm format

# テスト実行
pnpm test

# テスト(監視モード)
pnpm test:watch

# カバレッジ付きテスト
pnpm test:coverage

# E2Eテスト
pnpm test:e2e

# プロダクションビルド
pnpm build

# Windowsインストーラー作成
pnpm build:win

環境変数

現在は必須の環境変数はありません。必要になった場合は .env.example を用意し、dotenv-safe で検証します。

ディレクトリ構造

src/
├── main/              # Electronメインプロセス
│   ├── services/      # ビジネスロジック
│   │   ├── code-status.ts      # コードステータス計算
│   │   ├── coverage.ts         # カバレッジ計算
│   │   ├── email-parser.ts     # メール本文解析
│   │   ├── next-candidate.ts   # 次候補コード選定
│   │   ├── notification-scheduler.ts  # 通知スケジュール
│   │   └── store.ts            # データ永続化
│   ├── ipc-handlers.ts         # IPC通信ハンドラ
│   ├── observability.ts        # ログ・エラー収集
│   └── index.ts                # エントリポイント
├── preload/           # preloadスクリプト
├── renderer/          # Reactアプリ(レンダラープロセス)
│   └── src/
│       ├── components/         # UIコンポーネント
│       │   ├── ui/             # 汎用UIパーツ
│       │   ├── OverviewTab.tsx # ダッシュボード
│       │   ├── CodesListTab.tsx # コード一覧
│       │   ├── RegisterTab.tsx  # 登録
│       │   ├── EditTab.tsx      # 編集
│       │   └── NotificationTab.tsx # 通知設定
│       └── hooks/              # カスタムフック
└── types/             # 型定義(一元管理)
    ├── code.ts        # ドメイン型
    ├── ipc.ts         # IPC通信型
    └── schemas.ts     # Zodスキーマ

リリース手順

  1. package.json のバージョンを更新
  2. docs/RELEASE_NOTES.md にリリースノートを追記
  3. 変更をコミット・プッシュ
  4. タグを作成してプッシュ: git tag v1.x.x && git push origin v1.x.x
  5. GitHub Actions がインストーラーをビルドし、Releaseを自動作成

運用・デプロイ

  • Windows向けの配布物は pnpm build:win で作成します
  • 生成物は release/(electron-builderの出力先)に配置されます
  • GitHub Releasesから最新版をダウンロードできます

トラブルシュート

アプリが起動しない

  1. %APPDATA%\povo-promo-code-notify\logs\app.log を確認
  2. 依存関係の問題がある場合は再インストール:
    pnpm install
    pnpm build

通知が届かない

  1. アプリが起動していることを確認
  2. Windowsの通知設定で「povo プロモコード管理」が許可されているか確認
  3. 「通知」タブでテスト通知を送信して動作確認

データが消えた

  1. 自動バックアップは %APPDATA%\povo-promo-code-notify\backups\ に保存されています
  2. インポート機能で復元可能

メールからコードが抽出できない

  1. メール本文全体(ヘッダーを含む)をコピーしてみる
  2. 手入力フォームから追加する
  3. 英数字10〜20文字のコードパターンのみ抽出対象です

FAQ

Q: アプリを閉じても通知は届きますか? A: デフォルトでは閉じるボタンを押すとタスクトレイに常駐し、通知をお届けします。また、トレイアイコンをダブルクリックするとウィンドウを表示します。

Q: コードの「入力期限」と「有効期限」の違いは? A: 「入力期限」はpovoアプリにコードを入力できる期限、「有効期限」は入力後に通信サービスが有効な期限です。

Q: 複数のPCで使えますか? A: エクスポート/インポート機能でデータを移行できます。ただし自動同期はサポートしていません。

Q: データはどこに保存されますか? A: %APPDATA%\povo-promo-code-notify\ フォルダに保存されます。

ライセンス

MIT License

About

An application for managing unlimited-use promo codes for Povo 2.0. It includes network‑coverage warnings, expiration warnings, and a recommendation feature for the next code to use. Supports Windows 10/11.

Topics

Resources

License

Stars

Watchers

Forks

Contributors