父親のためのサッカー試合情報をスペイン語に翻訳したアプリ
【作ったもの】 以下のサッカー試合情報ページの内容をスペイン語に翻訳したアプリケーション https://www.nmjp.net/football/ 【作るに至った背景・改善したこと】 父親がペルー人で日本のサイトのサッカー情報を見られず、いつどんな試合があるかを見られなかったのがきっかけです。 【利用者の反応】 主に父親のみの利用ですが、 ずっと悩んでいたことではあったみたいなので使った反応は便利だといってもらい嬉しかったです。 【仕様技術・選定理由】 ・python(スクレイピングにライブラリのbeantifulSoup活用) スクレイピング処理に活用 選定理由 →非常に使用感があるplaywrightと比較して、ブラウザ操作をするわけではなくHTML情報を取得するだけなのでbeatifulSoupの方が軽量であると判断しました。 今はE2Eテストの自動化までplaywrightでできることを考慮すると失敗したと思うので、様子を見てスクレイピング・テスト部分をplaywtightに置き換え予定です。 ・supabase(storage) jsonファイルの保存先、fetch先として活用 選定理由→以前利用したことがあり利用感があったため ・react フロントエンドの表示に活用 →今後サッカー情報だけではなく、いろんなスポーツのトピックも見れるようにしたくページネーションする際に高速であったほしいため。 →その際にUIの共通部分が多くなる見込みでありコンポーネント化による恩恵を受けられると思い選定 【改善予定】 ・UI/UX ・ディレクトリ構成 →reactのコンポーネント分割やpythonによる処理の責務の分離をし可読性を上げる予定 ・型付け →typescriptによる型付けの可読性が低く、jsonファイルの中身をフェッチした際の構造がコードから読み取りずらいので、型もしくはjson構造を修正予定 ・テスト導入 →jestかvitestを活用予定 ・以下の内容を自動化 →最新情報取得~テスト~ビルド~デプロイまでを自動化 ・無駄なDB利用を削減(ビルド時にjsonを生成それをfetchしてデプロイすればよいので、データベースを用意す必要がないと思ったため) ・機能追加 →各中継先情報の追加(DAZNやYoutubeなどの情報) →ログイン機能 (ログインすることで各媒体へのログイン情報が確認でき、その場でログインIDやパスワードが見れるようにする、父親はよくログイン情報を忘れてしまうのでこれも実装予定) ・gptへのプロンプト修正 →若干日時に誤差が生じているので改善予定