明らかに攻撃的なリクエストが飛んでいて、管理するのが怖くなったので消しました。
クソアプリカレンダー 25日目を担当します。今年が 4回目の参加です。
これまでに作ったものはこのようなものです。
またクソアプリコンテストではないですが、これもなかなかクソアプリだと思います。
今回作ったのは、"Howマッチ" という マッチングアプリ です。年収で決闘できるマッチングアプリです。メールアドレス もしくは GitHub ID があれば登録できます。
皆さん対戦してください。
謝罪
毎年、面白おかしく書こうと色々工夫しているのですが、今年はできあがったのがついさっきであるため文章を書いている余裕がなく、淡々と事実だけ書いていきます。(現在 12/25 23:04)
なぜ作ったのか
知り合いの年収を単純に知りたくないですか?
年収を開示するのはちょっと勇気が入りますし、自分のは開示したくないのですが、開示することで知りたい人の年収を知れるなら開示したいという声をたまにききます。
なのでそれができるサイトを作ってみました。
お互いの年収を知れば「え、あなたそんなにすごい人なのにこんなに年収低いんですか!弊社もっと出せます、弊社に来ませんか?」や「え、こいつこんなに高いん?おれが低いだけか?転職しなきゃ!」的なこともあるのではないでしょうか。年収の相場感を自覚することでキャリアプランも築きやすくなると思い、こういうものを作りました。
使い方
認証情報を登録します。メールもしくはGitHubで可能です。
年収情報を登録します。
登録が完了しました
マッチングします。(これは別のユーザーから見たものです)
相手も自分にマッチしていると、お互いの年収を知れます
どう作ったのか
NextJS + Firebase で作っており、技術的には特筆することはないです。
ただ、設計は少し工夫をしており、全てのリクエストを Firebase Functions 経由で行っています。
これは年収情報というセンシティブなものを確実に守りたく、バリデーションの行いやすさや、不正なリクエストの検知を目的としているためです。
その代償としてコールドスタートによるTTFBの影響はあります。
特に常に大量にリクエストが来るわけではないので、まばらなユーザー全員がTTFBの悪い体験をしてしまうという問題があり、これは改善すべきことだと思っています。
おそらくセンシティブな情報が絡まないところは Firestore に直接アクセスさせる、もしくはFaaSをやめるとかにすると良いのだろうと考えています。
もしこのサービスが使われることがありそうでしたらこの辺りは改善します。
そういえば久しぶりに Mui を使ってみました。業務で昔作っていたのですが、最近はもっぱら Chakra や Ant を使っていたので追いかけていませんでした。Material UI が Mui としてリブランディングされて使うのは初めてでした。要素に直接スタイルを当てるのがやりやすかったり、Chakra にある思想が取り込まれていたりで結構使いやすかったです。
特に Mui はサポートしているコンポーネントの種類はもともと多く、このクオリティーでこの数のコンポーネントが使えると考えると、これからの選択肢としてありではと思っています。
あとがき
マッチングとか恋人とかそういうのばっか書いてて悲しくなってきた