Skip to content

Repository files navigation

routica

Release Downloads License

Download routica.exe

Windows 10 / 11 向け。ダウンロードして実行するだけで動く(インストール不要)。

ゲームの日課や週課、イベント消化を、キャラクターごとに登録して消化状況を管理するローカルアプリ。 単一ユーザーの個人利用に特化し、データはすべて手元の SQLite に保存する。 サーバも通信もアカウント登録も要らない。

これは何か

複数のゲームの日課や週課、イベント消化を、キャラクター単位でまとめて管理できる。 ログインやアカウント、他ユーザーとの共有といった仕組みは持たない。 起動したらすぐ今日やることが並び、最小の操作で消化を記録できることを最優先にしている。

主な機能

  • 全ゲームを横断するダッシュボードで、今日の消化状況と期限が近いイベントを一目で確認できる
  • ゲームを好きなだけ登録し、各ゲームにキャラクターを好きなだけ追加できる
  • タスクを3種類の記録方法で登録できる
    • チェックボックス:やったかどうかだけを記録する
    • カウンター:上限まで回数を数える(例:デイリー討伐 0/3)
    • マルチセレクト:複数の選択肢から消化したものを複数選ぶ
  • タスクの周期は4種類
    • 日課:毎日リセット。曜日を指定すると特定曜日だけ有効にできる
    • 週課:毎週月曜起点でリセット
    • 隔週:2週間ごとにリセット
    • イベント:開始日から終了日までを1期間とし、期間中はリセットしない。残り日数を表示する
  • キャラクターごとに全体進捗バーと、周期セクションごとの一括完了ボタンを備える
  • 未達のタスクを手動で「完了扱い」にできる
  • キャラクターごとに自由記述のメモを残せる
  • タスク構成をテンプレートとして保存し、別のゲームへワンクリックで一括追加できる(既にある同名タスクは自動でスキップ)。テンプレートは項目単位の編集や空からの新規作成もできる
  • 既存のタスクを複製して、似たタスクを素早く作れる
  • ライト / ダークモードを切り替えられる(初回は OS のテーマ設定に従う)
  • ゲームごとに1日のリセット時刻(0〜23時)を設定できる
  • キャラクターの連続達成日数(streak)を Today に表示する
  • ゲームやキャラクター、タスクをドラッグ&ドロップで並び替えられる
  • キーボードショートカットで画面やゲームを素早く切り替えられる
  • 前回開いていたゲームと画面を覚えて、次回もそこから始められる
  • 設定した時刻に未消化の日課が残っていれば通知できる(リマインダー、既定は無効)

動作要件

  • Windows 10 / 11(WebView2 ランタイム。Windows 11 には標準で入っている)
  • 開発時のみ:Go 1.25 以降、Node.js 18 以降、Wails CLI v2

使い方

画面の操作や周期・タスク種別の使い分けなど、詳しい使い方は docs/USER_GUIDE.md を参照。

配布された exe を使う場合

Releases から routica.exe をダウンロードし、実行するだけでよい。 インストールは不要で、初回起動時にデータベースを自動で作成する。

開発

# 開発モード(ホットリロード)
wails dev

# 本番ビルド(単一 exe を生成)
wails build
# → build/bin/routica.exe

Go 側のテストは次で実行する。

go test ./...

フロント側のテスト(vitest)は次で実行する。

cd frontend && npm test

データの保存場所

すべてのデータは次の SQLite ファイル1つに入っている。

%APPDATA%\routica\data.db

バックアップはこのファイルをコピーするだけでよい。 このフォルダは、「Manage」画面の「データフォルダを開く」ボタンからも開ける。 アンインストールしたいときはこのファイルと exe を消せば痕跡は残らない。

ドメインの考え方

データの階層は「ゲーム → キャラクター」と「ゲーム → タスク定義」の2本立てになっている。

  • ゲーム:タスク定義とキャラクターの所属先。プレイしているタイトルごとに1つ作る
  • キャラクター:ゲームに属する。同じゲームの全キャラが、そのゲームのタスクを個別に消化する
  • タスク定義:ゲームに属する。周期と記録方法を持つ
  • 完了記録:タスク定義とキャラクターと期間の組で一意。期間が変わると自動で未消化に戻る

リセットの時刻

日付の境界は既定で日本時間の午前5時とする。 午前5時より前はまだ前日として扱う。 多くのゲームが午前5時に日次リセットする慣習に合わせた既定値で、ゲームごとに 0〜23 時の範囲で変更できる。

技術構成

  • Wails v2:Go バックエンドと React フロントエンドを1つのネイティブウィンドウにまとめる
  • バックエンド:Go。SQLite ドライバは CGo 不要の modernc.org/sqlite を使う
    • internal/core:ドメイン型、周期算出、ストレージ、サービスをまとめたパッケージ
    • app.go:フロントから呼ぶバインドメソッドの薄いラッパー
  • フロントエンド:React 19、TypeScript、Tailwind CSS 3、shadcn/ui、TanStack Query

フロントは Wails が自動生成する型付きバインディング(frontend/wailsjs)経由で Go のメソッドを呼ぶ。 HTTP も REST もなく、関数呼び出しがそのまま Go に届く。

設計の詳細は DESIGN.md に置いた。

既知の制約

  • 通知(リマインダー)はアプリを起動している間だけ動作する(常駐やバックグラウンド通知はしない)

ライセンス

このソフトウェアは PolyForm Noncommercial License 1.0.0 で提供する。 個人利用や学習、非営利団体での利用といった非商用の目的であれば、改変や再配布、フォークを含めて自由に利用できる。

一方で、商用利用と商用への転用は認めない。 本リポジトリを商用目的で Fork や Clone して利用することもできない。

このライセンスは利用分野として商用を除外するため、OSI の定義上の「オープンソース」ではない。 ソースコードは公開するが再利用の範囲を非商用に限る、いわゆる source-available のライセンスに当たる。 そのため GitHub のライセンス判定でも、標準のオープンソースライセンスとしては認識されない。

About

ゲームの日課や週課、イベント消化をキャラクターごとに管理するローカルアプリ(Wails + SQLite)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages