Open13

[WIP]URの個人開発アプリのメモ

penpenpenpen

個人開発をするので、どうせなので考えたこととかをメモしていきます。

penpenpenpen

UR賃貸の空き部屋を通知してくれるようなアプリがほしい。

具体的にいうと、以下を実現するアプリがほしい。

  • ユーザーは
    • メール通知したいURの空き部屋の条件を確認/追加/削除/変更できる
    • Googleアカウントでログインできる
    • 通知したいメールアドレスを変更できる
    • 退会できる
penpenpenpen

アプリは、モノレポ構成で以下みたいな感じでいいかな。

  • apps
    • web
      • ユーザーがURの空き部屋の条件を確認/追加/削除/変更できるサイト
      • ur-notity.penpen-dev.comみたいなサブドメインを切ろうと思ってる
    • scraping
      • URのサイトからスクレイピングする
    • api
      • scrapingから叩くためのAPI。
      • Next.jsのRoute Handlerで作ろうと思ってたけど、Next.jsから乗り換えるとなったときに困る気がしたので、HonoとかでAPIだけを作る。
penpenpenpen

技術は以下みたいな感じにしようと思ってる。

  • フロント:
    • Next.jsしか使えないマンなので、Next.jsにする。
    • 最近だとRemixとかAstroも人気っぽいけど、サクッと作りたいのでNext.jsにする。
    • UIはshadcnが人気っぽい。
  • バック:
    • スクレイピングしてから叩くAPIはHono、Next.jsから叩くのはServer Actionsでいいと思ってる。
  • インフラ:
    • 全体的に激安なので、Cloudflareにしたい。
  • DB、ORM
    • DBは、Cloudflare D1にする。5GBまで無料という破格なので。
    • ORMは、Drizzle ORMにする。実務で慣れているので。
  • CI/CD
    • 慣れているし無料で行けるのでGitHub Actionsにする。
    • ついでにスクレイピングもGitHub Actions上でPlaywrightを使って無料で行う感じにしたい
  • モノレポ
    • 実務でTurborepo+pnpmが使い慣れれてるので、これでいきたい。
  • バージョン管理
    • miseで全部一括で管理したい
    • と思ったけどNode.jsくらいしか管理するものがなさそう?
    • あとReovateを入れて自動でバージョンをアップデートするようにしたい
  • リンター、フォーマッター
    • ESLintだけ入れる。厳しいルールで。
    • Prettierは入れない。
  • 認証
    • いつも雰囲気でやってるのであんまり分かってない。
    • SupabaseとかFirebaseとかNextAuthとか、そのへんを使えばいいのかな。
    • NextAuth+Googleを組み合わせる感じにしたほうが制限が少なくていいのかな。調べる
penpenpenpen

DBは、Cloudflare D1にする。5GBまで無料という破格なので。

これ嘘だった。
実際はこう👇️

  • 無料: 1DBあたり500MBで、10DBまで作れる
  • 有料:1DBあたり10GBで、50,000DBまで作れる(ただしリクエストすると上限解放できる)
penpenpenpen

とりあえずCI/CDでリンターとかのチェックを走らせるようにしたい。
あとTurborepoでモノレポ構成にするのもしたい。

最初の準備がとても面倒くさいな‥。

penpenpenpen

wrangler.toml(Cloudflareの設定ファイル)の設定があってるかどうか分からなくてツラい。

‥と思って調べたらVScodeのEven Better TOMLを入れたら、以下のように候補を出るようにできた。

▲ちなみにこのように候補を出すのはSchemaStoreという仕組みで実現してるらしい

ありがたい〜

penpenpenpen

一応URの利用規約も調べた。

https://www.ur-net.go.jp/site/guide.html
(一応魚拓も)

規約によると、「URのデータを勝手に無断転載しないでね」的なことは書いてるけど、「スクレイピングしないでね」とは書いていないので、スクレイピングするのは一応大丈夫だと思ってる‥。

仮にダメだったとしても、1日数回スクレイピングするだけなのでサーバー負荷はほとんど無視できると思うし、URの売上アップに繋がるようなサイトになるはずなので、見逃してもらえるはず‥などと楽観的に考えてる(もしダメだったら自分用にする)。

あと物件名(UR助松みたいな棟の名前)はサイト内で使わせてもらうつもりだけど、物件名自体はGoogle Mapとかでも使われてるし、無断転載には該当しない気がしている‥。

gennygenny

こちらのシステム、大変興味がございます。
個人開発との事で、販売はお考え無い状況でしょうか?
もしご相談可能でしたらご連絡頂けましたら幸いです。
どうぞよろしくお願いします。

penpenpenpen

はじめまして〜。
すみません時間がなくて全然開発できておりませんでした。
ですがあなたのコメントのおかげで、今日から再開してみようかなという気持ちになりました。ありがとうございます🙇‍♂

販売は、「たくさんの人に使ってもらえる感じだったら一部有料化してお小遣いを稼ごうかなぁ〜」くらいに考えておりました。

penpenpenpen

再開するって言ったけど、結局やれてない。

というか別の個人開発の案を思いついてしまって、先にそっちを作りたくなってしまったので、とりあえずこれは放置⋯。