マサウェイのブログ

テックキャンプ 12週目の振り返り(2020/12/7〜12/13)

総論

 転職活動を優先したため、オリジナルアプリへの追加実装の計画を修正した。具体的には1週間後ろ倒しの、12/25完了目標とする。

f:id:masaway_tech:20201213225507p:plain

 

LINE Notifyの採用

 先週はLINE BotRailsで作成し、単体動作確認を行い見込みを得た。今週はオリジナルアプリに実装しようと試みたものの、正常に動作しなかった。これは大元のアプリケーションコントローラーの継承元のクラスが異なるためと考えられる。故にオリジナルアプリへのLINE Bot連携を断念した。

 

f:id:masaway_tech:20201213230710p:plain

 

 代わりにLINE Notifyを採用した。これはRailsアプリからLINEへ一方向で通知するものである。LINE Botとは異なり、オリジナルアプリと同様のコントローラーにアクションを追加するだけで実装できる。なお今後はバッチ処理を活用し、定期的に自動でLINE通知できるようにする。

 

f:id:masaway_tech:20201213230820p:plain

テックキャンプ 11週目の振り返り(2020/11/30〜12/6)

総論

 開発したオリジナルアプリの追加実装を計画通り推進した。参考まで、推進項目の分類は下記3つある。11週目は1及び2の単体機能確認を完了し、3の追加実装を行った。

1. ラズベリーパイ+カメラとの連携

2.掃除アプリの改善(LINEとの連携)

3.継続的な追加実装

 

f:id:masaway_tech:20201206223402p:plain

 

ラズベリーパイ+カメラの連携

 カメラによりデスク上の異常(散らかっている状態)を検出し、アプリへ通知する機能を想定している。Python及びAI認識のライブラリを活用し、物体検出機能の単体動作確認を行った。AIモデルには100種類の認識データがあり、該当したものを検出する。デスク上にあるパソコンやマウス、テーブルなどを検出できた。

 

f:id:masaway_tech:20201206225247p:plain

 

LINEとの連携

 RailsによるLINE botを作成した。今回におけるLINE botはLINE上で特定の文字を送信すると、それに応じた返信を行う。RailsはHerokuでデプロイしている。予めLINE Deveroperでユーザー登録し、チャネルを作成する。ここでLINE側のID及びトークンを取得し、Herokuの環境変数に登録する必要がある。一方HerokuでデプロイしHTTPSから始まるアドレスをLINE Deveroperにも登録する。これにより、双方向への通信が可能となる。

 

f:id:masaway_tech:20201206231129p:plain

 

3.継続的な追加実装

 実装の優先順位は上記に比べ下がるものの、GitHubで定期的なcontributions追加(通称草を生やす)を目的としている。今週はパンくずリスト及びユーザー編集機能(+結合テスト)を追加した。

 

f:id:masaway_tech:20201206231758p:plain

 

テックキャンプ 10週目の振り返り(2020/11/23〜11/29)

総論

 テックキャンプ の最終課題発表を終え、予定通り卒業できた。また、残項目だったオリジナルアプリの結合テストも完了した。一方でラズベリーパイ+カメラ連携アプリは発表準備を優先したため、進捗なし。計画を一旦見直し、再作成した。

f:id:masaway_tech:20201129232510p:plain

オリジナルアプリ

 下記の結合テストを実装し、オリジナルアプリの開発を一旦完了した。

・ユーザー登録機能

・画像投稿機能

・掃除箇所の提案機能

f:id:masaway_tech:20201129231951p:plain

 

 

 来週以降については、オリジナルアプリの追加実装を行う。大きな追加予定機能としては下記の通り。12月中旬にはそれぞれ完了を目指し推進する。

ラズベリーパイ+カメラとの連携(期限:12/18)

・LINEへの通知機能(期限:12/11)

f:id:masaway_tech:20201129232053p:plain

 

 

 

テックキャンプ 9週目の振り返り(2020/11/16〜11/22)

 

総論

 オリジナルアプリのフロント修正を完了し、計画通り推進した。ラズベリーパイ+カメラを含む追加実装分は12月以降改めて再計画をたて、推進する。11/23週(第10週テックキャンプ 最終週)は課題発表の準備(READMEや要件定義フォーム、発表資料の作成)と結合テストを優先的に行う。

 

オリジナルアプリ

 計画通り推進し、アプリ開発を一旦完了とする。11/23週は残る結合テストを実施し、その他の追加実装は12月改めて実施する。

f:id:masaway_tech:20201122231037p:plain

 

 主に掃除提案ページのフロントを重点的に追加修正を行った。提案する掃除箇所をtableタグにより、項目の線及びヘッダーの色追加により、見易さ配慮した。また、右恥に関連ページへのリンクボタンを作成した。

 

f:id:masaway_tech:20201122231529p:plain

 

 掃除箇所の登録一覧ページを追加した。今回はindexアクションにより、一覧を表示させている。直接編集(editアクション)と削除(delete)アクションのボタンを配置した。これにより詳細表示(showアクション)ページの省略を可能にした。

f:id:masaway_tech:20201122231919p:plain

テックキャンプ 8週目の振り返り(2020/11/9〜11/15)

総論

 オリジナルアプリ(掃除提案アプリ)に掃除提案機能を実装し、必要機能要件を満足した。オプションの位置付けとなるラズベリーパイ+AIカメラの動作確認を計画通り推進できた。

 

f:id:masaway_tech:20201115232050p:plain

 

オリジナルアプリ(掃除アプリ)

 計画通りmust機能を満足した。具体的には掃除箇所の提案機能である。

f:id:masaway_tech:20201115232438p:plain

 

 はじめに掃除箇所の情報(詳細は後述する)を登録する。その後、今日掃除する場所を提案(表示)する。そして掃除完了後、提案された掃除箇所が非表示になる。

f:id:masaway_tech:20201115232646p:plain

 提案機能の詳細を説明する。掃除箇所の情報は下記カラムで構成されるテーブル(suggestions)に保存される。掃除すべきかどうかの状態を表すstatusカラムはフォームからの入力で直接保存はされない。

 

・掃除場所(place)

・適切な掃除期間(period_cleaning )

・最後に掃除した日付(last_cleaned_date)

・状態(status)

 

f:id:masaway_tech:20201115233303p:plain

 

 status以外の情報をフォームで送信するとcreateアクションが実行される。このアクションでは送られたフォーム情報の保存の他、status値を決定し保存もする。status値は「適切な掃除期間」と経過日数を比較して決定する。

 しかしここで問題がある。掃除すべきかどうかの状態を表すstatus値の更新である。現状では新規登録時から更新されない仕様である。これを解決するため、掃除提案ページと対応するindexアクションに更新機能を追加した。但し、indexページが読み込まれる度に更新されてしまいサーバーへ負荷が掛かると予想される。今後は24時間1回自動で更新される仕組みに変更する。

f:id:masaway_tech:20201116153938p:plain



 

テックキャンプ 7週目の振り返り(2020/11/2〜11/8)

 

総論

 オリジナルアプリの制作猶予3週間(7〜9週)に対し、1週間で半分程度推進できた。具体的にはDB設計を完了し、ユーザーログイン機能及び画像投稿機能を実装した。ラズベリーパイ の動作確認を実施し、アプリ連携の準備を完了した。

f:id:masaway_tech:20201108225726p:plain

 

オリジナルアプリ(掃除アプリ)

 DB設計を完了した。具体的にはUserモデル、Deskモデル、Commentモデル、Suggestionモデルの各カラム及びアソシエーションを定義した。

 

f:id:masaway_tech:20201108230443p:plain

 

 また第6週で検討した画面遷移図に従い、トップページ及び投稿画像ページを実装した。フロント周りは最後に着手する。

f:id:masaway_tech:20201108230636p:plain

 

ラズベリーパイ 

 ハードウェアの初期設定を完了した。予定よりも1週間前倒しで推進中。引き続き推進する。第8週ではAIカメラとの連携方法を習得する。

 

f:id:masaway_tech:20201108231116p:plain

 

第8週目以降の取り組み

 テックキャンプ の学習期間は残すところ3週間となった。オリジナルアプリ制作に加え、下記2つのタスクを追加する。いずれも転職活動を優位に進めるためである。

転職活動全般(職務経歴書の作成、企業調査、エントリーなど)

Qiitaへの投稿(1記事/日)

 

それに伴い、オリジナルアプリへの工数に制限が掛かると予想される。そのため、下記優先順位でオリジナルアプリ開発を推進する。

①モダン技術実装(AWS、Dockerなど)

②掃除提案機能実装

③AIカメラ制御方法の習得

④掃除アプリとの連携