2022 ソフトウェア設計及び演習用の班Wiki

22::gr01::小高悠幹

カレンダーアプリ

第2回

主に勉強の補助を目指したカレンダーアプリを作成することに決定した。

第3回

作成するアプリの機能や画面構成、必要なページ等を詳細に決定した。当初は勉強にフォーカスを当てたアプリ開発を予定していたが、いきなりそこまで開発を進めるのは難しいということで少し機能を減らした。今回話し合った機能を全て実装してから、より多機能なアプリを目指して改良を加えていく予定である。

第4回

ものと操作の洗い出しは前回の段階でほとんど終わっていたが、今回はより細かい部分まで考え完了させた。モジュール分割についての話し合いも進めたいところだったが、html, css, javascriptやデータの取り扱いに関する知識が足りなかったので次回にまわした。

第5回

モジュール分けを考え、図としてまとめるところまで作業を進めた。

データの取り扱いには教育用端末に入っているデータベースのPostgreSQLを用いることに決定した。

来週までに各自がhtmlやcssについて軽く勉強し、ある程度知識が付いたところで役割分担を行う予定。

第6回

端末のデータベースを使うために環境構築するのが大変そうなので、レンタルサーバーを借りてデータ管理を行うことにした。

今日は無料のサーバーをレンタルし、ページをアップロードしたり、データベースの設定をおこなったりした。

第7回

前回サーバーをレンタルしたが、思った以上に動作が重い(おそらく無料だったため)ことや、動作確認のためにいちいちphpファイルをアップロードする必要が生じる(大学の端末に仮想環境をつくるのが難しいため)など、開発の効率が悪いため、IndexedDBでデータを管理することにした。

IndexedDBはブラウザ上にデータを保存するためWebサーバーを必要とせず、ローカル環境で簡単に動作を確認できる。また、各ユーザーのブラウザにデータを保存するため、ログイン機能等が不要になったり、javascriptだけで操作が行える、簡単に扱えるライブラリがあるなど、今回の開発をする上で使用するメリットは大きいと感じた。

今回の用途に特化した形の、比較的簡単にデータベースへアクセスできる関数が出来上がってきたので、次回までには他の人にも容易にデータを扱えるような環境を整えられると思う。

下の画像は、データを格納したり、指定した条件のデータを取り出す機能を備えたサンプルページの画像。

(追記):画像が大きすぎて邪魔になると思い削除

第8回

中間テストで忙しく、個人的には前回からの進展があまりなかった。データを大量にセットするなど、動作確認のためのデバッグページがあってもよいかと思い、これからはそのページを実装していく予定。アプリの機能が増えて扱うデータの種類が増加していくことも考えられるので、柔軟に対応していけるような実装にしておきたい。

アプリ内に最近の予定を表示する部分があるのだが、そこの実装も担当することになった。

後半の課題
  1. レスポンシブな(画面サイズに応じて見た目が変わる)デザインにしていく(担当は他の人になると思うが)
  2. jsに慣れていない班員にも簡単にデータを扱えるような関数群を用意(一応できてきたが扱いに若干癖がある)
  3. 情報共有

班員同士の情報共有が不足している部分はあるかもしれない。今回はじめてgitを使ったが非常に便利で驚いている(他の人のコードを見れるのはありがたい)。gitlabと班wikiを上手く活用すれば情報共有がしやすくなるので、今後は積極的に活用していきたい。

第9回

IndexedDBを使ってブラウザにデータを保存することになったため、以前借りたレンタルサーバーの出番はもうないと思っていた。しかし、firefoxだとローカルでファイルを開いた際に別ページとのデータ共有がなされていないことに気付いた(同じドメイン内でのみデータを共有する仕様からだと思われる)。ページをサーバーにアップすればこの問題は解決するはずなので、サーバーがあって助かった。

最終的にどんな機能を盛り込んでいくのか話し合い、仕様の見直しを行った。当初の予定から変更もあったが、アプリ完成へ向けて大体の見通しが立ってきた。扱うデータの種類が増えるので、自分はその辺りの実装を進めていく予定。

中間発表

中間発表があった。完成度の高いアプリばかりで驚いたが、学ぶことも多かった。正直どうやって開発を進めていくべきなのかまだ悩んでいるが、他の班のwiki等も参考にしながら完成を目指して頑張っていきたい。

第10回

予定の更新機能や、カレンダーページと予定入力ページの連携は一応できるようになった。

データベース周りはまだいじってないので、来週までには追加機能が動くところまで持っていきたい。node.jsで簡易的なWebサーバーを構築できるのは知らなかった。使えるかもしれないので軽く勉強しておくのもありかと思った。

第11回

今日は役割分担の見直しを行った。自分は引き続きデータベース周りのプログラムを担当する。まだ担当分の開発が終わっていないが、できれば次回までに終わらせたい。あと、全体的にレスポンシブなデザインへ作り直すらしい。

学習データの記録や集計を行えるテストページをつくる予定。

第12回

学習機能に関わるデータ操作モジュールを大体完成させた。単体テストもある程度はやったので、次回までにこのモジュールを利用した機能を作成しておく予定。 担当したモジュールの仕様書も途中とはいえそれなりに書いた。班Wikiの「モジュール分け」ページにリンクを貼ってある。 (簡易版のページをつくってモジュール分けページにリンクを張った。長々と書いた方は結局まとまらなかったのでリンクを消したが、gitlabのドキュメンフォルダに残っている。)

全体のデザインが大まかに決まったようなので、それに合うような形で担当ページの作成も進めて行きたい。

テスト直前に忙しくなるのは嫌なので、来週までには担当分をきっちり仕上げておきたいところ。

第13回

テストが近くなってきたせいもあり、開発の時間をあまり確保できていなかった。前回からあまり進んでいないので、期限までに完成するのか不安はある。テスト前に開発を進めるのは厳しいので、テスト終了後に頑張って終わらせる予定。

第14回

時間が足りず完成度は微妙だったが、一応動くところまでいった?のは良かったかもしれない。まだまだやることがあるのに、テスト後の1日や2日で完成させようというのは無謀だった。学習アプリということで試験情報を管理するようなモジュール等も作ってはいたのだが、アプリに組み込むところまではいかなかった。

データベースを扱うのははじめてで、そこに関わるモジュールの制作に手間取ってしまい、全体の制作活動に遅れが出てしまったのは申し訳なく思う。

この班にはWebアプリ開発の経験者がおらず(htmlやjsを触ったことのある人はいたが)、チーム開発の経験者もいなかったので、どういう流れで開発していけばいいのか悩むところも多かった。完成まで持っていけなかったとはいえ、今回の経験から学べたことは多かったのであまり後悔はしていない。

他のチームや例年の班の班Wikiは非常に参考になった。いろいろな情報が得られるので読んでいておもしろかった。今回使ったIndexedDBも過去の班Wikiで知ったのだが、それまでは名前を聞いたことすらなかった。


最終更新日:2022/07/30 15:24:38