概要
学校の研究開発の中でいぬ・ねこの健康を管理するプロダクト「いぬねこhealth」を作成しました。
主な機能としては以下になります。
- 一日に与える食事量をご飯のカロリー量から計算する適正食事量計算機能。
- 外観と触感で大まかな太り具合を5段階で判断するBCS計算機能。
- ペットの毎日の様子を写真付きで記録することのできるCRUD機能。
- 犬と柴犬の写真をランダムで表示させる機能。
以上等をまとめdjangoでwebアプリの形にしました。
URL
デプロイ https://inunekohealth.up.railway.app/
GitHub https://github.com/aohana-AO/inuneko2
使用技術
base
- Python==3.9
- Django==4.1.4
- PyCharm
- visual studio code
- Windows10,11
CRUD周り
- django-allauth==0.51.0
- django-widget-tweaks==1.4.12
デプロイ
- gunicorn==20.1.0
- whitenoise==6.2.0
- Railway
API処理
- requests==2.28.1
フロント
- js
- jQuery
- BootStorap5.0
- FontAwesome
選定理由
同じチームの方がアプリ開発初心者だがPythonはある程度かけるという状況だったことから、手っ取り早く動かせるものとして「Python、Django」を用いたwebアプリ開発を行いました。
全体的にそれにあわせたリファレンスの多い技術を選定し、チームでの開発の円滑化を目指しました。
工夫点
- 動物病院の情報など参考にBCS計算・適性食事量計算のロジックをプログラムに落とし込んだ。
-
Herokuの有料化、GCP・AWSの個人利用の敷居の高さからデプロイが難しくなっていた点を、Railwayの使用で対処した。※RailwayへのdjangoデプロイはHerokuへのデプロイの設定を少し弄るだけで可能
今後の課題
- Railwayの使用は実際運用の面で制限が多いため、今後このプロダクトを長期運用していく場合は有料プランもしくは他サービスに乗り換えることを検討するべき。
- フロントエンドの幅調整の点で変更しきれてない位置のずれがあったため、この点を改善する必要がある。
参考
-
requirements.txtのpip書き出しについて https://note.nkmk.me/python-pip-install-requirements/
-
Railwayを用いたHeroku以外でのdjangoデプロイ https://kikuichige.com/15689/#toc2
-
django4.x系列デプロイ後のcsrf検証失敗について https://blog.aoirint.com/entry/2022/django_3_x_to_4_x_csrf_verification_failed/
-
Railwayダッシュボード https://railway.app/dashboard
- カロリー計算ロジックhttp://www.hidamari-hosp.com/2019/08/24/1411/
- BCS計算ロジックhttps://www.env.go.jp/nature/dobutsu/aigo/2_data/pamph/petfood_guide_1808/pdf/6.pdf
- サイトhttp://gettemplate.com/
- 犬表示APIhttps://dog.ceo/
- 柴犬表示APIhttps://shibe.online/