📝 変更履歴
Welfare TIME の機能と変更点を、バージョンごとにまとめています。
バージョン番号は セマンティックバージョニング に従います。
- メジャー:APIの形式を変えるなど、利用者の対応が必要な変更を含むときに上げます。
- マイナー:機能を追加したときに上げます。
- パッチ:不具合を修正したときに上げます。
1.0.0 になるまでは開発中の扱いとし、APIの形式を変えるような大きな変更でもマイナーを上げます。
毎朝の自動更新によるデータのコミットは、バージョンの対象に含めません。
v0.4.1(2026-10-03)
食堂の過去の営業時間が、更新のたびに失われないようにする修正です。サイトとAPIの形式は変わりません。
変更点
- 毎朝の更新で、大学サイトから取得した食堂のPDFと、その取得情報(
data/pdfs/.metadata.json)を main に保存するようにしました。これまでは保存しておらず、大学サイトからリンクが外れたPDFの分は、次の更新でAPIを作り直したときに、過去の営業時間が欠けるおそれがありました。7〜9月分の取得情報は、公開済みの履歴から復元しました。 - 公開の前に、過去の日の食堂の記録(店舗、場所、営業時間、備考)が、公開中のAPIから欠けていないかを検査するようにしました。欠けていたり変わっていたりすると、公開中のAPIを置き換えず、更新を失敗させて知らせます。当日と未来の日は、取得元が変えるため検査しません。
- 毎朝の更新が重ならないよう、実行を直列にしました。公開用のPDFも、常に最新の内容で上書きします。
- 検査の回帰テストを追加し、
just testに加えました(開発者向け)。 - 毎朝の更新のコミットが、PDFと取得情報を含むようになり、メッセージが「Update source data」に変わりました(開発者向け)。READMEに、現在の更新と公開の流れを書きました。
v0.4.0(2026-10-01)
変更点
- 臨時店舗を載せられるようにしました。常設ではない店舗や、大学の管理外の店舗を、
data/extra/に置いた JSON から載せます。載せた店舗のカードには「臨時」と表示します。依頼の手順と形式は、ヘルプの「臨時店舗を載せたいとき」にあります。 - ヘルプに「臨時店舗の JSON を作る」フォームを加えました。入力を検証し、掲載を依頼する JSON と、サイトでの表示例を作ります。
- マップのページで建物を強調するとき、その建物を明るく残し、ほかの部分を暗くするようにしました。これまでは建物を青く塗るだけで、目立ちませんでした。
- マップで強調できる建物を、店舗のある6棟から、地図上のすべての建物(31棟)に増やしました。店舗のない建物にカーソルを合わせたときも、その建物が強調されます。
- 場所が建物の名前で始まる施設を、マップのその建物と連動させるようにしました。マスターに載っていない施設でも、「並楽館前」のように書けば連動します。
- プライバシーポリシーを加えました。Google アナリティクスと Cookie、ブラウザに保存する設定、外部サービス、問い合わせ先(GitHub の Issue)を説明しています。フッタとヘルプから開けます。
- APIの日付ごとの営業情報と店舗の情報に、臨時店舗を示す項目
temporary(値はtrue)を加えました。臨時店舗にだけ付く項目で、既存の項目は変わりません。 - 使われていなかった要素とテンプレートを削除し、スタイルシートのコメントに残っていた旧名を直しました(開発者向け)。
- カードの組み立てを
buildCardHtml()に切り出し、サイトとフォームで共有しました(開発者向け)。generator.pyには、臨時店舗のディレクトリを渡す任意の引数--extra-dirを加えました。
この時点での機能
サイト
- 京都産業大学の食堂、コンビニ、ショップ、ATM、キッチンカーの営業情報をカードで一覧できます。
- 常設ではない店舗や、大学の管理外の店舗も載せられます。これらのカードには「臨時」と表示します。
- 現在時刻から「営業中」「準備中」「営業終了」を判定して表示します。
- 前日・翌日のボタンやカレンダーで日付を切り替えられ、「今日」ボタンで当日に戻れます。
- 表示する施設を、カテゴリや営業中かどうかで絞り込めます。
- 施設を、営業状況順・名称順・場所順・カテゴリ順で並び替えられます。絞り込みと並び替えの設定は、ブラウザに保存されます(すべてのカテゴリを外した場合は、次に開いたときにすべて表示に戻ります)。
- キャンパスマップと施設の一覧を並べて表示し、施設の場所を地図上で確認できます。建物にカーソルを合わせると、その建物以外のマップが暗くなり、建物の施設が一覧の先頭に移ります。
- 各施設の公式ページや、情報の取得元へのリンクを表示します。
- ライトモードとダークモードを切り替えられます。
- スマートフォンのホーム画面に追加して、アプリのように使えます。
- フッタに、プライバシーポリシーへのリンクと、バージョン番号、コードの最終更新日時を表示します。バージョン番号をクリックすると、変更履歴のページを開けます。
- ヘルプに、使い方、臨時店舗の依頼の手順と JSON を作るフォーム、APIの説明、プライバシーポリシー、変更履歴があります。
データの収集
- 大学サイトが公開する食堂のPDFから、営業日と営業時間を抽出します。
- SHOP STOP のページから、キッチンカーの単日出店と定期出店の予定を取得します。
data/extra/に置いた JSON から、臨時店舗の営業予定を取り込みます。書式に誤りがあるファイルやエントリは、日々の更新を止めずに読み飛ばし、警告します。- 毎朝7時頃に GitHub Actions でデータを更新し、サイトとAPIを公開し直します。
- キッチンカーの出店記録を
data/kitchen_cars_past.jsonに蓄積します。取得元から消えた過去の出店も残ります。 - マスターに登録されていない店舗は、日々の更新を止めずにまとめて警告します。
API
静的な JSON API を公開しています。詳細は APIリファレンス にあります。
/api/schedule/today、tomorrow、yesterday:前日・当日・翌日の営業情報を返します。/api/schedule/YYYY-MM-DD:指定した日の営業情報を返します。/api/schedule/week、/api/schedule/weeks/{n}:週単位の営業情報を返します。/api/shops、/api/shops/{shop-id}:店舗の情報と営業日時の一覧を返します。/api/status:データ全体の更新状況と範囲を返します。
臨時店舗には、項目 temporary(値は true)が付きます。
v0.3.0(2026-09-27)
変更点
- キッチンカーの定期出店(毎週決まった曜日の出店)を取り込むようにしました。後期から取得元のページに定期出店の欄が加わり、これまでは読み飛ばしていました。
- フッタに、バージョン番号とコードの最終更新日時を表示するようにしました。
- ヘルプに、このページ(変更履歴)を追加しました。フッタのバージョン番号からも開けます。
- 並び替えに「カテゴリ順」を加えました。食堂、ショップ、コンビニ、サービス、ATM、キッチンカーの順に並び、同じカテゴリの中は名称順になります。
- マップのページで、絞り込みや並び替えをしたあとも、カードと建物の強調がカーソルの位置に合うようにしました。これまでは強調が消えるか、古い強調が残っていました。
- マップのページで建物にカーソルを合わせたとき、先頭に移す施設の並び順が逆になっていたのを直しました。
- マップのページで薄く表示するカードの濃さを、建物からのときとカードからのときで揃えました。
- 開発用のタスクの実行を、make から just に移行しました。
- モーダルの開閉とマップの連動の処理を整理しました(開発者向け)。モーダルを開閉するインラインの JavaScript と
onclick属性をテンプレートからなくし、static/js/modal.jsに移しました。マウスの操作はイベント委譲で扱います。
この時点での機能
サイト
- 京都産業大学の食堂、コンビニ、ショップ、ATM、キッチンカーの営業情報をカードで一覧できます。
- 現在時刻から「営業中」「準備中」「営業終了」を判定して表示します。
- 前日・翌日のボタンやカレンダーで日付を切り替えられ、「今日」ボタンで当日に戻れます。
- 表示する施設を、カテゴリや営業中かどうかで絞り込めます。
- 施設を、営業状況順・名称順・場所順・カテゴリ順で並び替えられます。絞り込みと並び替えの設定は、ブラウザに保存されます(すべてのカテゴリを外した場合は、次に開いたときにすべて表示に戻ります)。
- キャンパスマップと施設の一覧を並べて表示し、施設の場所を地図上で確認できます。
- 各施設の公式ページや、情報の取得元へのリンクを表示します。
- ライトモードとダークモードを切り替えられます。
- スマートフォンのホーム画面に追加して、アプリのように使えます。
- フッタに、バージョン番号とコードの最終更新日時を表示します。バージョン番号をクリックすると、変更履歴のページを開けます。
データの収集
- 大学サイトが公開する食堂のPDFから、営業日と営業時間を抽出します。
- SHOP STOP のページから、キッチンカーの単日出店と定期出店の予定を取得します。
- 毎朝7時頃に GitHub Actions でデータを更新し、サイトとAPIを公開し直します。
- キッチンカーの出店記録を
data/kitchen_cars_past.jsonに蓄積します。取得元から消えた過去の出店も残ります。 - マスターに登録されていない店舗は、日々の更新を止めずにまとめて警告します。
API
静的な JSON API を公開しています。詳細は APIリファレンス にあります。
/api/schedule/today、tomorrow、yesterday:前日・当日・翌日の営業情報を返します。/api/schedule/YYYY-MM-DD:指定した日の営業情報を返します。/api/schedule/week、/api/schedule/weeks/{n}:週単位の営業情報を返します。/api/shops、/api/shops/{shop-id}:店舗の情報と営業日時の一覧を返します。/api/status:データ全体の更新状況と範囲を返します。
v0.2.0(2026-08-04)
APIの形式を変更しました。APIを利用している場合は対応が必要です。
変更点
- 日付ごとのAPIで
cafeteriasとkitchen_carsに分かれていた配列を、facilitiesの1つにまとめました。 - キッチンカーの店舗IDを、店名から SHOP STOP の店舗IDに変えました。店名が変わっても同じ店舗として扱えます。
- APIが返す取得元のURL(
sources[].url)を絶対URLにしました。相対URLのままでは、解決すると存在しないURLになっていました。 - サイトの名前を「Welfare TIME」に統一し、ベースURLやアイコンのパスの誤りを直しました。
- マスターに登録されていない店舗を、日々の更新を止めずにまとめて警告するようにしました。
- スクレイパーとAPI生成の回帰テストを追加し、PRと main への push でテストを実行するようにしました。
v0.1.0(2026-07-31)
最初の公開版です。
機能
- 大学サイトの食堂のPDFと SHOP STOP のキッチンカーの出店情報を毎朝取得し、サイトとAPIで公開します。
- 食堂、コンビニ、ショップ、ATM、キッチンカーの営業情報をカードで一覧できます。
- 日付の切り替え、カレンダー、再読み込みのボタンを備えています。
- キャンパスマップと施設の一覧を連動して表示します。
- ダークモードと、スマートフォンのホーム画面への追加に対応しています。
- キッチンカーの過去の出店記録を蓄積します。取得元から過去の情報が消えても、その日に何が出店していたかが残ります。