問題に答えないとジャンプできない短縮URLサービスを作った

できること

短縮 URL を作ることができます。

ふつうの短縮 URL サービスと違うのは、あらかじめ問題を設定しておいて、正解した人だけジャンプさせることができる点です。

こんな感じの URL が生成されます。

https://hppr.app/m2pCLpFfq

PC からもスマホからも使えます。


経緯

10 年前に、パスワード付きリンクを生成する hopper という Web サービスを作ったことがあった。時間が経ったこともあって、もう止まってしまっていたんだけど、最近ふとしたことで、「あれ使いたいな。でももうないんだよな……」という場面があって困った。

今日日、あんな簡単な Web サービスはその日のうちに、2〜3 時間もあれば作れないとおかしい。だから、必要なら作ればいいと思った。

と偉そうに考えてはみたものの、自分は元々 Web 系の開発スキルが弱い上に、最後に仕事で Web っぽいことやってから 1 年くらい経ってるし、個人開発はもっと経ってる。それで、リハビリというか、勉強のために、以下のような条件で作ってみることにした。

  • 旧版の hopper と同じく Google App Engine で動かす
  • 高望みせず、旧版と同程度の機能にする (多少はよい)
  • 旧版のソースは見ない
  • 一番書き慣れている Java を使う
  • リハビリの最初なので、Spring などのフレームワークやいまどきのテンプレートエンジンは使わず、素の Servlet/JSP でやる
  • JavaScript もあんまり使わない

月曜日に始めて、今が土曜日の未明 (金曜日の深夜) なので、理想としている「その日のうちに、2〜3 時間もあれば」には程遠い。中の構造がいまいちスッキリしていないし、div でよさそうなのについ br を使った箇所があるし……。

世の中の水準で言えば不出来なんだけど、リハビリなので、手を動かして先に進めたことにひとまず満足している。

旧版よりはマシになった点

外観リニューアル
  • 少しだけ今風の見た目になった。10 年前の旧版はガラケーでも使えるように作っていたので、当時の基準でもショボかったんだけど、今回は CSS フレームワークの Mustard UI を使って、ちょっとだけ今っぽくなった。とはいえ、今回作ったのも今の基準で見るとショボいんだけど、それはフレームワークではなくて僕が悪い。

  • 一部、Google Fonts 経由で Web フォントも利用。MozillaFirefox OS 用に作ったという Fira Mono を利用することで、生成される URL が読みやすくなった

クリップボードSNS 対応
  • 生成された URL をクリップボードにコピーするボタンを追加
  • 生成された URL を Twitter にツイートするボタンを追加。Twitter Card にも対応
  • 生成された URL を LINE で送るボタンを追加
その他変更点
  • 独自ドメインの利用やアプリ側の工夫により、より短い URL が生成できるようになった
  • Let's Encrypt を利用して HTTPS に対応 (といっても、Google App Engine で設定しただけなので、自分では何もしてないけど……)
  • 削除用パスフレーズを設定しておけば、後で何かあったら削除できるようになった