開発期間一ヶ月。文系未経験が大学課題管理アプリを作った話。

#概要
この度、大学の友達三名と大学の課題管理アプリを開発しました。
ダウンロード👇
[IOS](https://apps.apple.com/jp/app/protask-%E8%AA%B2%E9%A1%8C%E7%AE%A1%E7%90%86%E3%82%A2%E3%83%97%E3%83%AA/id1539127148)
[Android](https://play.google.com/store/apps/details?id=net.shohi.pro_task)
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://t.co/9iYWMbdmQ1">https://t.co/9iYWMbdmQ1</a><br>大学課題管理アプリ3月リリース予定です👀<br>　<br>関西学院大学では来年度の春から課題管理がびっくりするほど楽になります😌<br><br>誰もが悩んでいた課題を見つける大変さ・手間・面倒臭さを解決するアプリ【ProTask】<a href="https://twitter.com/hashtag/%E6%98%A5%E3%81%8B%E3%82%89%E9%96%A2%E5%AD%A6?src=hash&amp;ref_src=twsrc%5Etfw">#春から関学</a> <a href="https://twitter.com/hashtag/%E8%AA%B2%E9%A1%8C%E7%AE%A1%E7%90%86%E3%82%A2%E3%83%97%E3%83%AA?src=hash&amp;ref_src=twsrc%5Etfw">#課題管理アプリ</a> <a href="https://twitter.com/hashtag/ProTask?src=hash&amp;ref_src=twsrc%5Etfw">#ProTask</a></p>&mdash; 井手翔陽 | Tech.Uni (@shouhi_ide) <a href="https://twitter.com/shouhi_ide/status/1363087489959751683?ref_src=twsrc%5Etfw">February 20, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
#メンバー紹介
代表: 長谷川峻生,,,関西学院大学国際学部2回生(Twitter:@toshikist_）
エンジニア: 井手翔陽,,,関西学院大学商学部2回生（Twitter:@shouhi_ide）
エンジニア: 藤本晃太郎,,,ECCコンピューター専門学校高度情報処理研究科ゲーム開発エキスパートコース(Twitter:@Fcom_K）
#開発したアプリの概要
開発したアプリは、**大学の課題を自動で管理できるスマホアプリケーション**です。
使用技術
フロントエンド: Dart(Flutter)
サーバーサイド: Node.js(JavaScript)
クラウドサービス: Firebase(mBaaS)
![Gold iPhone XS Plus left.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/d71b4e9e-1bac-c21c-99bc-315176281038.png)

#開発した背景
![IMG_5813.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/72cbfa3e-9005-4e84-c040-10525737f42b.jpeg)
考案者である代表長谷川（関西学院大学国際学部2回生）が10月1日に「β版リリースは11月」とただ一言述べて開発がスタート。
それから10月の間は朝から晩までコード書いたり会議をしたりを繰り返す。
（個人的にやばかったのは、寝てたらいきなり代表の長谷川から「今日何実装した？」と聞かれて「いやまだ今日は何も。。」って答えると「寝てる暇あるん？？😌」と言われたこと、、）
#課題解決点
関西学院大学Lunaによる課題確認方法は以下のとおりです
①ブラウザから「関学 Luna」で検索
②Lunaにシステム利用IDとパスワードを入力してログイン
③受講している科目一覧から科目を選択
④教材課題テスト一覧より出ている課題がないかを確認

一科目の課題の確認におよそ1分ほどかかります。
さらに課題が出ているか出ていないのかの確認を自分で行わないといけないので課題を誤って見落としてしまうと単位を落とすことに繋がってしまいます。
そこに学生の**「面倒くさい・不安」**といった課題点が出ていました。
#アプリの機能及び実装
###①スクレイピングによる課題の自動管理
✔システム利用IDとパスワードを使用
✔直近一週間のカレンダーに締め切りの課題を表示
✔課題が完了したかどうかを色でわかりやすく判別
![スクリーンショット 2021-03-15 9.50.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/eaec8a6d-c124-2fae-28e8-f5a386d2d4b3.png)
###②Todoリストとして活用
✔自分でタスクの追加
✔タスクの一覧表示
✔課題が完了したかどうかをチェックボックスで管理
![スクリーンショット 2021-03-15 9.55.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/94ba7cae-1982-149a-693b-e52815c6dc1f.png)
#開発の風景
###連絡の取り方
基本的にSlackを使って連絡を取り合うようにしていました。
・Githubの通知専用のチャンネル![スクリーンショット 2021-03-15 16.51.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/b09e25df-4775-a50a-23e9-671e8d8ca4ac.png)
・チーム（スクラム）としての会話
![スクリーンショット 2021-03-15 17.10.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/062d5618-a434-00d0-591d-176b62fd3867.png)

###タスク管理の仕方
・Trelloを使用
１，サンドボックスには「あったらいいな」ぐらいの機能を置いておく。（基本的にはやらないことが多い）
２，プロダクトバックログには必要不可欠な機能を置く
３，バグフィックスでは修正必要な箇所を見つけ次第追記していく
４，スプリントバックログにはその一週間のうちに最低限終わらす機能を置く⇢終わったら完了へ。
![スクリーンショット 2021-03-15 17.18.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/b6a0160e-bf70-8ee2-3e56-f1186dce25d7.png)
#技術面
####GCPによる課題取得方法
![スクリーンショット 2021-03-15 17.34.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/bb6fd563-5a72-b4fa-3f10-a438823b9a0f.png)
※なお、システム利用ID及びパスワードの保存では以下の手順で暗号化させていただいています。
今回使用しました暗号化は、暗号化したいデータをバイナリデータに変化したのち、バイナリデータを文字列に変換するアルゴリズムです。 
そして各段階の変換時に特殊な方法を用いて難解な文字列に変更することで強固な暗号化データにしています。
#ProTaskのこれから
**✔登録ユーザー数1万人を目標（関西学院大学在籍数22,870）**
**✔友達追加機能実装**
**✔課題管理をベースにした学内SNSの地位を築く**
![スクリーンショット 2021-03-15 17.49.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619648/ef1588d9-774a-1256-79eb-c093bcaf22c8.png)