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

22::gr01::中間発表

6月3日までの進捗

  • タイトルページ 6月3日.png

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

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

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

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

2.png

・前回作ったカレンダーで無効な入力ができないようにした。
・任意の日付の所の色を変えるプログラムを考えた。

・JavaScriptでのタイマー作成
・タイマー.htmlにあたるページを作成(完成)
・タイマー終了.htmlにあたるページを作成(未完成)
・タイマー部分と終了画面のプロトタイピングをした。
・タイマー機能や画面遷移といった基本的な機能のシステムを作ることができた

中間発表

プロジェクト名
  • カレンダーアプリ
プロジェクト説明
  • 対象:主に学生
  • 目的:学習管理
  • 機能:テストまでの期間、勉強時間を表示。試験などの目的の日程や、忘却曲線から逆算して学習科目等を指示。タイマーで時間勉強時間などを計測し利用。
ものと操作の洗い出しの結果

/* モノ */

メニュー
  • カレンダーボタン
  • タイマーボタン
  • 予定表示画面
タイマー機能
  • 開始、停止、再開、終了ボタン
  • 時間表示
  • タイマー終了画面
  • カレンダー、トップへのリンク
カレンダー機能
  • 先月/来月への移動ボタン
  • 残り日数の確認画面
  • 日付(年、月、日、曜日)
  • 予定入力画面へのボタン
予定入力画面
  • 予定入力ボタン
  • 決定ボタン
  • 日付、前日、翌日への移動ボタン

/* 操作 */

メニュー
  • カレンダーボタン、タイマーボタンを押すと各機能の画面へ移動。
タイマー機能画面
  • 開始、停止、再開、終了ボタンを押すとタイマーに対して目的の動作を行う。
タイマー終了画面
  • カレンダー、トップへのリンクを押すと各画面へ移動する。
カレンダー画面
  • 先月/来月ボタンを押すと各月に移動する。
  • 特定の日付を押すと予定入力画面へ移動する。
予定入力画面
  • イベント名欄を選択すると新しくイベントを入力できる。
  • 決定ボタンを押すとイベントを確定できる。
  • 前日/翌日ボタンを押すと移動できる。
モジュール分けの結果

Module02.png

モジュールの説明
  • title.html:タイトル画面の表示
  • calender.html:カレンダー画面の表示
  • input.html:予定入力画面の表示
  • timer.html:タイマー画面の表示
  • timer_finish.html:タイマー停止後の画面の表示
  • debug.html:デバック用のファイル。予定などの情報の入出力の動作確認やページへの反映をチェックする
  • main.css:全体のデザインを統一するためのcssファイル
  • ScheduleDataManager.js:全体のデータ管理を行う。データ表示が必要なモジュールとのみ関係を持つ
  • cal_prog.js:表示されたカレンダーに目的の操作を加える。予定の表示など。
  • timer.js:表示されたタイマーに目的の操作を加える。開始終了など。
  • timer_finish.js:表示されたタイマー終了画面に目的の操作を加える。ページの移動など。
プログラムの動きを図にしたもの
デモのスクリーンショットとプロトタイププログラムの説明
  • ファイルの階層関係とデータの入出力は再現した。 demo1.png demo2.png demo3.png demo4.png demo5.png demo6.png
今後
  • 全体のデザインを統一するためにデザインの決定やファイル作成を行う
  • 時間などの記録した情報を活用する機能を作成する
  • 画面遷移時のエフェクトも追加する
  • 予定変更時のテキスト再入力
  • 画面サイズの変更に対応
  • カレンダー画面で表示されるカレンダーの日程欄に入力された予定を表示


最終更新日:2022/06/17 14:59:33