lekcijeという、DMM英会話で講師に空きレッスンがあった時にメール通知するサービスを作った。もともとは下記で書いたものがベースになっていて、これに画面を付け足したという感じ。毎日家に帰ってから自分の空き時間でチマチマ作っていたので半年ぐらいかかってしまった。
作った動機としては
- DMM英会話はレッスンが終わらないと次の分の予約ができない
- 人気の講師はすぐ予約が埋まってしまう
- でも意外とキャンセルが出るので、それを逃したくない
という感じ。もちろんお金をかければ1枚500円もするレッスンチケットを買いまくって予約するということはできるのだろうけど、さすがにそれは金銭的につらかったので技術で解決しようという試み。
実装に関して
本当はReactとかも使いたかったんだけど、どうしても時間が取れなくてSPA的なモノは諦めて、サーバーサイドでHTMLを生成するというオールドタイプな実装になっている。Herokuを使っているのでアメリカの東海岸からHTMLが配信されるのがつらいけど、静的ファイルはHTTP2を使って配信するようにしてパフォーマンス面には気を遣った。
久しぶりにWebサービスを作ったのだけど、普段の仕事ではサーバーサイドのコードしか書かないので、ロゴ作ったりキャッチコピー考えたりすることはいい勉強になった。プロの人はすごいなぁと思うばかりです。というわけで、DMM英会話をやっている人がいたらぜひ使ってみて下さい。
使った技術
- HTTP2
- Let's encryptでSSL証明書を取得
- Frontend
- bootstrapだと素っ気ないので、bootswatchを使った
- ビルドにはWebpack使った(つらい)
- Server (Go)
- Database: MySQL 5.7
- Database migration: goose使ったけど、sql-migrateにする予定
- E2E test
- agouti: Selenium WebDriver的なヤツ
- Nginx: 静的ファイルの配信
- メール送信: Sendgrid
- Heroku
- ngrok
- スマホで動作確認したい時に便利過ぎた