サーバサイドにDjangoを利用したタスク管理アプリを結構前に作りました。
というか今も鋭意開発中です。
アプリを作る際にハマったところとか、参考にしたサイトや知識なんかをまとめておきたいと思います。
#タスク管理アプリ「gantt」のご紹介
まずはじめに、こういうものが作れましたの紹介をさせてください。
僕が作ったのがタスク管理アプリ「gantt」です。
https://gantt.work/
- 登録したタスクをガントチャートで表示することができます。
- 期限のないミニマルなタスクを登録するTODO機能を使うことができます。
- Twitter、GitHub、LINEでのソーシャルログインに対応しています。
- 期限切れのタスクがある場合に、TwitterへのDMで通知することができます。
タダだよ!よかったらつかってね!
タスクの期限切れはいずれLINEのプッシュ通知とかでもできるようにするつもり。
事前知識の習得
WEBアプリの作成知識は全くのゼロの状態から初めたので、どのサイトを使って勉強したかから書いていきます。
Paizaラーニング
エンジニア向けの転職サイトのPaizaが出しているWEB学習サービスです。環境構築不要で、動画を見ながら問題をときつつ学ぶことができるので効率がいいです。このサービスでPython、SQL、HTML/CSS、Bootstrap、Flask、Bash、Gitなんかをざっと学びました。
有料会員になると、動画を早回しする機能を使えるようになるので有料会員になるのもありかもしれません。
ちなみに僕は有料会員です。
正直djangoを使う場合はSQL文は書けなくてもなんとかなります。でもDBがどういうものか知っておいたほうがイメージつくんじゃないかなーと思うので、余裕があったら見ておいたらいいかも。
Djangoの使い方
Djangoの使い方はこちらの記事を参考にして勉強しました。
簡単な書籍管理アプリをイチから作り方を教えてくれるので、初心者でも簡単に一個アプリを作ることができるのでおすすめです。
「Djangoでなにか作りたかったらこの記事を読んでおけばいいんじゃない? んで作ればいいんじゃない?」っていうくらいおすすめです。
WEBアプリの作成(実践)
何ヶ月かかかって作っていて、どういう順序で作っていったか覚えていないので、実装している機能ごとに「こんなもの使ってるよー。こういうサイトを参考にしてつくったよー」位を書いていきます。
ソーシャルログイン周り
django-allauthを使っています。pipでインストールできます。
pip install django-allauth
海外のプロジェクト?なのであまり情報がなくて困りました。
特にLINEのログインはドキュメントがほとんどなくてしかもハマったので、また今度記事にしたいと思います。
(追記 2019/10/08)
記事書きました。
django-allauthでLINEログインをする
標準ログイン周りは爆速で作れるDjangoユーザ認証機能【django-allauth】を、twitterログインなんかはこっちの記事を読むとわかりやすいかも。
ガントチャートの表示
Google Chartsのgantt chartをそのまま使用しています。
これはドキュメントを見た気がしないので、公式ドキュメントを見てもらうといいかも。
英語だらけで分けわからないですが、ソースコードコピペで意外となんとかなるから大丈夫。
タスク入力画面のデータタイムピッカー
これはdjango-bootstrap-datepicker-plusを利用しています。
これもpipでインストールできます。
pip install django-bootstrap-datepicker-plus
こちらの記事を参考に作りました。
[Django] 日付入力欄をカレンダー形式にする (bootstrap-datetimepicker)
参照先で丁寧に説明してくれているので、ここでの説明は割愛します。
djangoプロジェクトのデプロイ
ドメインとかサーバとかを借りる
ganttはお名前.comでドメインを取得しています。
サーバーはConoHaで借りています。「AWSじゃないの?」という人もいると思いますが、AWSは従量課金制で万が一サイトが流行ったらお金が払えないのでやめました。(そんなにはやってないよ!)
どういうサイトを参考に設定したか忘れたんですけど(多分いろんな参考情報のキメラ)、今調べたらこちらのサイトがわりかしわかりやすそうでした。
Conohaサーバと独自ドメインを連携
ドメインとサーバの連携は設定自体は簡単なんですけど、情報の反映に時間がかかるので、「失敗かも!?」と焦って設定を変えまくるんじゃなくて、設定した後放置しておくくらいが丁度いいです。
ConoHaでサーバを建てる
初めは僕も「CentOSサーバをたてて、そこにdjangoなりなんなりを入れていこう!」としましたが、ConoHaはdjango用のイメージを用意していてくれるので、間違いなく使った方がいいです。
イメージを指定して「作成!」とボタンを押すだけでだいたいサーバイメージができるので簡単です。
これからConoHaでdjangoをデプロイする人が居たら、迷うことなく既存イメージを使いましょう。
djangoのアプリをデプロイする
ここもだいぶ悩んだので、色んなサイトを見ました。
いくつか参考になったサイトを載せておきます。
ConoHaのVPSにDjango環境を作る
DjangoGirlsで作ったWebアプリを、ConoHa VPSでデプロイ
おわりに
とりあえずこれでデプロイまでです。
後はSSL通信化したり、メールサーバ構築してシステムメールをくるようにしていますけどそれは別の機会に。
あと、もういちど、gantt使ってください!(切実)
お問合せフォームから開発要望とか随時受け付けています!