Webサービスでまんがリマインダーを公開してみました。
どんなサービスなの?
キーワードを登録しておくと近日中に発売される/された漫画の一覧が表示されます。以上。
ブラウザのlocalstorage内にキーワード情報とか格納しているのでサイトへの登録とか必要ありません。
(ユーザー登録が必要ないサービスを自分が欲しかったので作ったというのもある)
あとはキーワードのブラウザ間の連携機能だったり
今調整中で一部の人(自分)しか使えませんがGoogleカレンダーへの連携機能だったりがあります。
私の欲しいもの且つ実験場的な要素が強いので、予告なく機能が追加されたり改善されたり変更されたりしますのでご了承ください。
構成の話
上図な感じの構成です。
- メインはAzureStaticWebAppsを使用
- WebAPIはAzure Functions
- Bring Your Owns Functionsしてみたかったのでそのような構成
- フロントはAngularで構成。バックエンド側はすべてC#で構成
- ストレージは今の所localStorageとSQL Databaseがメイン
- 漫画の発売情報元はRakuten WebAPI
- WebAPIの仕様上長時間のバッチ実行になりそうだったのでDurable Functionsで対応
- Amazonはなんか面倒くさかった(アフィとか色々めんどかったので気軽に使える方を使用)
- 画像データも合わせて取得して半年くらいキャッシュ効くように設定した上でBLOBに格納
StaticWebApps使ってちょっとサイト組んでみたい。。っていうのと
最近自粛生活で漫画買い忘れが頻発したのでちょうどええし作ってみるか。ってのが経緯です。
割と勢い駆動開発をしてきたので、Azureの構成等々改善する余地はまだまだありそうな感じです(すでにLoadが重い)。
ソースコードの構成の話
上図のような構成です。
- 一つのリポジトリでフロントからDBまで管理
- モノレポ構成ってやつですね
- リソースはすべてGitHubActionsでデプロイ
GitHub上で公開しています。気になる方は見てみていただければと。
まさかり歓迎しています。
今後の話
やりたいことはGitHubのIssueに書いています。
ほぼ自分用のサービスなので実験場にもなりそうな気はしていますが
なにか追加してほしい機能とかあればIssueかDiscussionに書いていただければと思います。