AtCoder偏差値くんというwebアプリを作りました。
https://ningenme.net/hensachi/
・アプリの概要
AtCoderのidあるいはレートを入力すると偏差値が表示されるようなwebアプリケーション。
一年前ぐらいに一度似たようなものを作ったのですが運用を全く考えていなかったので無かったことになりました。
今回は一応色々調べながら(自分なりに)ちゃんと作ったのでその記録です。
(開発と呼べるほどではないかもですが)
ざっくりとした仕様
・週1でAtCoderのratingなどのユーザー情報を拾ってきてデータベースに追加
・標準偏差などの偏差値に必要なものを予め前計算
・クライアント側の入力に応じて偏差値を返す
シンプルだと思います。
[サーバー] AWS
環境構築が苦手なので簡単らしいlightsailを選びました(それでも大変)
AWS何?って人はレンタルサーバーと認識すれば大丈夫だと思います。
※AWS悪いとこはあまりなくて、強いて言うならお金がネックになるのかなと思います。
ドメインで年間1500円ぐらいかかります、月々はアクセス多くなければ500円いかないと思います。
httpsのための保証書で月2000円ぐらいかかるのでそこが一番デカい。
[言語] php, html, css, javascript.
lightsailのインスタンスとしてLAMPを選びました(環境構築しないでいいので楽)
[OS] windows,linux
ローカルはwindows10、サーバーはubuntuです。
[ネットワーク]
サーバーにドメイン当てたり、DNSやhttpsの設定とかを最初にします。僕も何言ってるのか未だに分かりません。
[sshクライアント] mobaXterm
便利。拡張でgitもすぐ入る。ftpも同時にこなしてくれるので良いです。
[ソース管理] git
bareとnon-bareの違いを理解してなかったのでリポジトリ立てる時点で苦労しました。
hooksで自動化を設定しておくことでローカルからpushしたと同時にサーバー側でpullしてくれて便利。
[gitクライアント] Source tree
CUIが苦手なので。直感的に操作できて良いです。
[データベース] mysql
phpmyadmin使ったので楽でした。
[スクレイピング] phpQuery
phpのライブラリ。一瞬で準備終わるので楽です。
[フロントエンド] bootstrap
cssは書けないので全てbootstrapです。
[定期実行] cron
定期的なクロールをかけるためにcronを使いました。
パスとかが中で違うみたいで結構苦労した。
多分使ってる技術はこれぐらいで、後はphpをいい感じに書きます(完)
どれも当たり前の技術な感じがしますが、知らないと使うという選択肢すら出てこないのでそのへん難しいなと思いました。
余談ですが、これを作ったときはwebアプリにフレームワークなんてものがあるということを知らなかったので現状生phpだけで動いています(ゴミwebアプリでは……?)(MVC何それ?って感じでした)
さすがにまずいのとバージョンアップしにくいのでlaravelで作り直している途中。
AtCoderのレーティングの計算式もあまり目を通せていないのでよくない。
無知って怖いね。おしまい。