紹介
どうも、独学でウエブアプリを作っているクリスと申します!
最初はただの問題解決のため自分でアプリを作ろうとしましたが、まさかポートフォリオになるとは思いませんでした。(笑)
今回作ってみたものを紹介したいと思いますが、まずはその背景から語ります。
背景
自分は会社の寮に住んでいます。
寮は11部屋の一軒家ですが、なぜか電気代を計算してるメーターが6個しかない。
5部屋は各自のメーターで、残りの部屋はシェアという感じです。
なので毎月光熱費を計算するのを苦労してました。
そのうえ、他の部屋に住んでいる者は変わったりしますので、みんなが何日間、どのくらい使っているかを計算するのもかなり難しいです。(サービス業の従業員の出入りは激しいです)
そのため、自動的に計算してくれるアプリを作りたいと決めました。
アプリ概要
MVCアプリ、基本的なCRUD処理と自分で作ったアルゴリズムで一人一人の光熱費を計算して、ユーザーに表示する。
メイン機能
- 光熱費照会
- 日別で部屋のデータ照会(誰が何の部屋にいつ住んでいるか)
- 光熱費入力
- 部屋データ入力
- 光熱費削除
アプリのイメージ
-
表示されているすべてのデータはサンプルです
-
ログインは 管理員 と ゲスト 2種類あります。
-
部屋データ入力完了の確認画面
今までの入力はすべてCRUDでした
照会画面のボタンをクリックすると、DBにアクセスして、光熱費の金額を部屋データで毎日の平均で割ったりして、計算した結果を照会画面に出るようになります。
使用技術
フロントエンド
- bootstrap
- html/css/js (django template)
バックエンド
- Python 3.10.4
- Django 4.1.1
- uwsgi 2.0.20
- NGINX
インフラストラクチャー
- AWS (VPC, EC2, ALB, Route53)
- MySql (RDS)
DB Diagram
インフラ構成図
感想
完璧ではないが、アプリを使うことで、毎月この辺でかかる時間が縮めてて大変助かってます。それに携帯でも見れるので、どこにいても、上司や寮に住んでいる同僚たちにいろいろ聞かれたらすぐデータを見れるのでそれも大きいなメリットになりますね。
技術面に関して、
Djangoを独学して、ゼロから今までは大体4か月くらいかかりました。
そのうちAWSは2か月くらいの学習でした。
エラー > Google > 編集 > エラー > Google という流れがほとんどです
”新しいエラーが出ることは、前のエラーから進んでいること”というのを心かけて学習を続いています。
はまりポイント
- uwsgiをインスタンス再起動と同時にスタートすることを設定するには時間かかりました。それはLinuxに対しての勉強不足ですね。
- 環境変数はssh切断すると消えることを知らなかった。
AWS
ほかの方の記事など見ると、AWSで苦労したりするのが多いですが、自分はAWSのコースを受けてるおかげで、今回のデプロイはAWSのほうは結構順調でした。
今後の計画
- コンテナーでデプロイ
- terraform使用
- CI/CD使用(circleCI)
- 少しだけ Auto Scale を試す (お金取られるのが怖いので笑)
まとめ
初めての投稿ですが、見てくださった方ぜひぜひ気軽にコメントなどをしてください!
参考サイト
- EC2でPython3.10.xをインストールする際の手順
- uwsgi設定