13週目の振り返り(2020/12/14〜12/20)
転職活動に注力したため、進捗なし
テックキャンプ 12週目の振り返り(2020/12/7〜12/13)
総論
転職活動を優先したため、オリジナルアプリへの追加実装の計画を修正した。具体的には1週間後ろ倒しの、12/25完了目標とする。
LINE Notifyの採用
先週はLINE BotをRailsで作成し、単体動作確認を行い見込みを得た。今週はオリジナルアプリに実装しようと試みたものの、正常に動作しなかった。これは大元のアプリケーションコントローラーの継承元のクラスが異なるためと考えられる。故にオリジナルアプリへのLINE Bot連携を断念した。
代わりにLINE Notifyを採用した。これはRailsアプリからLINEへ一方向で通知するものである。LINE Botとは異なり、オリジナルアプリと同様のコントローラーにアクションを追加するだけで実装できる。なお今後はバッチ処理を活用し、定期的に自動でLINE通知できるようにする。
テックキャンプ 11週目の振り返り(2020/11/30〜12/6)
総論
開発したオリジナルアプリの追加実装を計画通り推進した。参考まで、推進項目の分類は下記3つある。11週目は1及び2の単体機能確認を完了し、3の追加実装を行った。
1. ラズベリーパイ+カメラとの連携
2.掃除アプリの改善(LINEとの連携)
3.継続的な追加実装
ラズベリーパイ+カメラの連携
カメラによりデスク上の異常(散らかっている状態)を検出し、アプリへ通知する機能を想定している。Python及びAI認識のライブラリを活用し、物体検出機能の単体動作確認を行った。AIモデルには100種類の認識データがあり、該当したものを検出する。デスク上にあるパソコンやマウス、テーブルなどを検出できた。
LINEとの連携
RailsによるLINE botを作成した。今回におけるLINE botはLINE上で特定の文字を送信すると、それに応じた返信を行う。RailsはHerokuでデプロイしている。予めLINE Deveroperでユーザー登録し、チャネルを作成する。ここでLINE側のID及びトークンを取得し、Herokuの環境変数に登録する必要がある。一方HerokuでデプロイしHTTPSから始まるアドレスをLINE Deveroperにも登録する。これにより、双方向への通信が可能となる。
3.継続的な追加実装
実装の優先順位は上記に比べ下がるものの、GitHubで定期的なcontributions追加(通称草を生やす)を目的としている。今週はパンくずリスト及びユーザー編集機能(+結合テスト)を追加した。
テックキャンプ 10週目の振り返り(2020/11/23〜11/29)
総論
テックキャンプ の最終課題発表を終え、予定通り卒業できた。また、残項目だったオリジナルアプリの結合テストも完了した。一方でラズベリーパイ+カメラ連携アプリは発表準備を優先したため、進捗なし。計画を一旦見直し、再作成した。
オリジナルアプリ
下記の結合テストを実装し、オリジナルアプリの開発を一旦完了した。
・ユーザー登録機能
・画像投稿機能
・掃除箇所の提案機能
来週以降については、オリジナルアプリの追加実装を行う。大きな追加予定機能としては下記の通り。12月中旬にはそれぞれ完了を目指し推進する。
・ラズベリーパイ+カメラとの連携(期限:12/18)
・LINEへの通知機能(期限:12/11)
テックキャンプ 9週目の振り返り(2020/11/16〜11/22)
総論
オリジナルアプリのフロント修正を完了し、計画通り推進した。ラズベリーパイ+カメラを含む追加実装分は12月以降改めて再計画をたて、推進する。11/23週(第10週テックキャンプ 最終週)は課題発表の準備(READMEや要件定義フォーム、発表資料の作成)と結合テストを優先的に行う。
オリジナルアプリ
計画通り推進し、アプリ開発を一旦完了とする。11/23週は残る結合テストを実施し、その他の追加実装は12月改めて実施する。
主に掃除提案ページのフロントを重点的に追加修正を行った。提案する掃除箇所をtableタグにより、項目の線及びヘッダーの色追加により、見易さ配慮した。また、右恥に関連ページへのリンクボタンを作成した。
掃除箇所の登録一覧ページを追加した。今回はindexアクションにより、一覧を表示させている。直接編集(editアクション)と削除(delete)アクションのボタンを配置した。これにより詳細表示(showアクション)ページの省略を可能にした。
テックキャンプ 8週目の振り返り(2020/11/9〜11/15)
総論
オリジナルアプリ(掃除提案アプリ)に掃除提案機能を実装し、必要機能要件を満足した。オプションの位置付けとなるラズベリーパイ+AIカメラの動作確認を計画通り推進できた。
オリジナルアプリ(掃除アプリ)
計画通りmust機能を満足した。具体的には掃除箇所の提案機能である。
はじめに掃除箇所の情報(詳細は後述する)を登録する。その後、今日掃除する場所を提案(表示)する。そして掃除完了後、提案された掃除箇所が非表示になる。
提案機能の詳細を説明する。掃除箇所の情報は下記カラムで構成されるテーブル(suggestions)に保存される。掃除すべきかどうかの状態を表すstatusカラムはフォームからの入力で直接保存はされない。
・掃除場所(place)
・適切な掃除期間(period_cleaning )
・最後に掃除した日付(last_cleaned_date)
・状態(status)
status以外の情報をフォームで送信するとcreateアクションが実行される。このアクションでは送られたフォーム情報の保存の他、status値を決定し保存もする。status値は「適切な掃除期間」と経過日数を比較して決定する。
しかしここで問題がある。掃除すべきかどうかの状態を表すstatus値の更新である。現状では新規登録時から更新されない仕様である。これを解決するため、掃除提案ページと対応するindexアクションに更新機能を追加した。但し、indexページが読み込まれる度に更新されてしまいサーバーへ負荷が掛かると予想される。今後は24時間1回自動で更新される仕組みに変更する。
テックキャンプ 7週目の振り返り(2020/11/2〜11/8)
総論
オリジナルアプリの制作猶予3週間(7〜9週)に対し、1週間で半分程度推進できた。具体的にはDB設計を完了し、ユーザーログイン機能及び画像投稿機能を実装した。ラズベリーパイ の動作確認を実施し、アプリ連携の準備を完了した。
オリジナルアプリ(掃除アプリ)
DB設計を完了した。具体的にはUserモデル、Deskモデル、Commentモデル、Suggestionモデルの各カラム及びアソシエーションを定義した。
また第6週で検討した画面遷移図に従い、トップページ及び投稿画像ページを実装した。フロント周りは最後に着手する。
ラズベリーパイ
ハードウェアの初期設定を完了した。予定よりも1週間前倒しで推進中。引き続き推進する。第8週ではAIカメラとの連携方法を習得する。
第8週目以降の取り組み
テックキャンプ の学習期間は残すところ3週間となった。オリジナルアプリ制作に加え、下記2つのタスクを追加する。いずれも転職活動を優位に進めるためである。
・転職活動全般(職務経歴書の作成、企業調査、エントリーなど)
・Qiitaへの投稿(1記事/日)
それに伴い、オリジナルアプリへの工数に制限が掛かると予想される。そのため、下記優先順位でオリジナルアプリ開発を推進する。
①モダン技術実装(AWS、Dockerなど)
②掃除提案機能実装
③AIカメラ制御方法の習得
④掃除アプリとの連携