2023 ソフトウェア設計及び演習用の班Wiki
23::gr01::小野寺永人
個人活動記録
第1回(4/21)
- 班決めをした。
- 健康管理アプリの開発に取り組むことにした。
- 今後の活動に備えて連絡先を交換した。
テーマについて詳細に話し合い、プロジェクト概要(簡易企画書)の作成に取り組む。
第2回(4/28)
- 開発テーマ関係(健康管理アプリに関して基本的な機能の決定とUIのデザインについても検討した。)
- Gitlab関係(班長に新規プロジェクト(現時点でリポジトリと同義)を作成していただき、そのまま班長のPCでclone~readmeファイルの作成~add~commit~pushまで行っていただき、自分のPCで複製して反映されていることを確認した。)
JavaScriptについて学ぶ。
第4回(5/12)
-
前回より、「もの」と「操作」の洗い出しについて話し合った。その結果をスライドにして班wikiのものと操作のページに掲載した.
次回以降
役割分担してそれぞれ画面設計と機能(モジュール)の設計を行う。
第5回(5/19)
-
個人的にHTMLでサンプルを書いてみた。設定画面で体重を入力してメイン画面で表示できるようにjavascriptのコードを少し書いてみた。
- あとモジュール分けについて話し合った結果をスライドにして班wikiのモジュール分けのページに掲載した.
- 担ったモジュールについての詳細を考えて来て打ち合せする。
- プロトタイプの作成
- モジュールの作成
第6回(5/26)
- Node.jsのExpressフレームワークとMySQLを用いて自分なりにプロトタイプを作成した。
- 班の方針として、データベースはFirebaseを用いて、フレームワーク等は使わないようなので、あまり班の活動の役に立たなかったがNode.jsによるサーバサイド(バックエンド)の勉強ができてよかった。
- それでも作成したプロトタイプの画面構成が,中間発表用の雛形に採用される感じになったので、.ejs→.htmlに直して共有しておく。
第7回(5/29)
- 前回作成したプロトタイプのデータベースモジュールをMySQLからFirebaseのNoSQLドキュメント指向データベースCloud Firestoreへ移行作業をした.サーバーレスなのはとても便利だと感じた.
- 担ったモジュール(データベース)について,データの追加操作は大体できたので,データの取得操作をできるようにする.
- 中間発表の準備
第8回(6/2)
- プロトタイプの画面モジュールを大体設計して、Firebaseを用いたデータの追加と読み込みのモジュールはできた。これで私の担当モジュールはあらかた完了となる。あとはやることがあるとしたら、他モジュールの要請に答えて種々のクエリを追加していくことかなと思う。
- 中間発表前に一度集まって打ち合わせを行うことになった。
- 他のモジュールがいい感じに出来上がっていたので、中間発表前に、メインプログラムに組み込んだり、DBからデータを持ってきて反映させたりなど、統合作業を行い、プロトタイプを完成させる。
- 中間発表
第9回(6/16)
- 中間発表を行った。トップバッターであったこともあるのか,不覚にも少し緊張してしまった。
- 他の班の発表を基に自分たちの班で反映できるものを改善点として追加した。
- 第5回あたりから今回の中間発表まで自分一人で勝手にほとんどプロトタイプを作ってしまったので,次回以降はちゃんと班員の分担を考えて,協調していこうと思う.前半頑張ったので,後半は少し楽をしたいという個人的な願望もある.
- 改善点(ものと操作の追加等)の作業
第10回(6/23)
- 改善点(ものと操作の追加等)の作業の続きを行った
- 個人の担当としてはユーザ管理モジュールであったので、ログイン時のエラー検出と表示、ソーシャルログイン(google,facebook,github)の実装を行った。(変更ファイル:login.html, signin.html, login.js, signin.js, 追加ファイル: login.css)
- 第10回(6/23)のつづき
第11回(6/30)
- 担当であるユーザ管理(新規登録・ログイン)モジュール及びデータベース(DB)モジュールについて、その解説を班Wikiに載せた。
- UIについて班員と話し合った。
- 第11回(6/30)のつづき
第12回(7/7)
- 統合テストをしてみて、各画面モジュールの変更により他モジュールに悪い影響が出ていたので、可能な限り取り除いた。
- 自身の担当モジュールに関しては入力エラー検出の改善を行った
- 中間発表後は作業の分担がスムーズに行ったので、自身のやることはあまり無くなったが、目標設定画面に関しては他の班員が手を加える事は無さそうなので、時間の許す限り設定画面モジュールの改善に取り組むのもいいかも知れない。
- 第13回(7/7)のつづきと最終発表準備
第13回(7/14)
- データ閲覧画面に関して、入力記録が多くなるとリストからグラフ、グラフからリストへのマウススクロールに手間が生じてしまうため、画面右下にクリックでグラフとリスト間を遷移できるようにスクロールボタンを追加した。
- 目標設定画面で、ユーザーが目標体重を設定し易いように、スライダーバーでBMIを調整することで体重を設定できるようにした。
- 班員と一緒に班Wiki最終発表の項目を編集した。
- 最終発表
第14回(7/28)
-
最終発表に関して、中間発表から分かりやすい視覚的な変化が少なかったので、話すネタとしてFirebaseについて説明できるように班Wikiに説明を載せた。
Firebaseとは
Cloud Firestore
データベースのイメージ図
- 最終発表の担当だったことに関して、班員の頑張りをちゃんと伝えられたか不安であるが、班Wikiには記録が残っているのでそちらを参照していただければ幸いである。
- 他班の発表に関して、どのアプリも高いレベルで機能が多く、とても勉強になった。本アプリも8/4の最終提出までに改善できる所はやってみようと思う。
講義を振り返って
昨年度C言語を学んで,今年度こちらの科目でいきなりグループワークでアプリを作るということで,最初は困惑したのを覚えています.データベースはおろかHTML,Javascript等の知識もはじめは全く無く,サンプルコードをひたすら書いてみて,徐々にアプリ作成に必要なスキルを身につけていきました.「自分で調べる力」を鍛えるいい機会になりました.
ユーザ管理とデータベース担当ということで,Firebaseを使うという方針になるまでは,Node.jsやMySQLの勉強をして自分でWebサーバやデータベースサーバを立てたりしてみて,それ自体は直接的に班の活動には貢献できなかったのですが,これもいい経験になりました.Firebaseによるプロジェクト作成に関しても,調べると,Reactとかを用いたサンプルばかりで,シンプルにJavascriptの記述のみで実装していくのは公式のヘルプページしかリファレンスが無かったので構築にとても時間がかかりましたが,気合で乗り切りました.慣れれば簡単になりました.逆に言えば,全く未知の領域でも,独学である程度のことはできることがわかりました.プログラミングに限らず,やらない理由や,やれない理由は探せばいくらでもあると思いますが,できるだけそういったものによりかからず,これからも様々なことに取り組んでいこうと思います.
よって,講義情報に記載していた講義の目的,到達目標に関して最低限の水準はクリアできたかと存じます.
個人的な心残りとしてはせっかくFirebaseの使い方を勉強したので,Cloud Storage を用いた機能も組み込められれば尚良かったと感じました.具体的には会員登録のときにアイコン画像を登録してユーザ情報と紐づけて,それをユーザ名表示の隣に表示させたり,メイン画面に表示させたりできればもう少し完成度が増したのではないかと考えられます.
最後に,本講義はグループワークということでしたが,この班は知り合い同士で編成した班ではなかったため,他の班員の方々にはコミュニケーションの面で負担をかけることが多く申し訳なく感じました.同じ班のメンバーである相川さん,Choiさん,横山さん,佐々木さん,武田さんには大変お世話になりました.短い期間でしたがありがとうございました.またお世話になる機会がありましたら,どうぞよろしくお願いいたします.特にChoiさんがFirebaseを用いたプロジェクトの開発を提案してくれたおかげで,その後の作業がスムーズに進みました.大変感謝しております.TAの信樂さんにも,いつも丁寧に対応していただいたこと大変感謝しております.本当にありがとうございました.
最終更新日:2023/08/04 14:22:36