Springでポートフォリオを作成する
本日からSpringを用いてポートフォリオを作成する過程を投稿していきたいと思います。
今回は、まず始めに要件定義を書いていきます。
要件定義
プロジェクト名
ToDoQuest
TODOリストにRPG要素を組み合わせたWebアプリを作成していこうと思います。
名前は今考えました。
プロジェクト概要
- TODOリストとRPGを組み合わせ楽しみながらタスクを管理する
- 業務の効率化を図る
TODOリストとRPG要素を組み合わせることで、本来つまらないであろう仕事を少しでも楽しく取り組めるようにしていきたいという目的があります。
既存のプロセス
現在はメモ帳にTODOリストを作成し、終わったタスクをマークするというプロセスになっています。
現状の問題点
自分
- タスクのやり/抜け漏れが多い
- メモ帳でTODOリストを作成してもすぐにやめてしまう
- タスクを放っておいて提出物などの期限が過ぎてしまうことがある
メモ帳
- どのタスクが残っているか一目見てわかりづらい
- タスクを記入し、終了したタスクをマークするだけなので面白みがない
- 期限が迫っている場合、教えてくれる機能がない
- ルーティーンタスクを毎回書かなくてはいけない
ゴールの設定(本来あるべき状態、目指す状態)
自分
- タスクのやり/抜け漏れをない
- TODOリストの作成を継続できる
- これまでのTODOリスト作成の時間を減らす
TODOリスト
- 一目見てやるべきタスクが分かる
- 使いやすさ、わかりやすさ
- タスクをこなすごとに自分(アバター)が成長していく
- 終わっていないタスクは通知機能で知らせてくれる
現状とゴールのギャップ(解決すべき課題の洗い出し)
- 技術不足(サーバーへのアップロード、Batch処理、デザイン、設計ノウハウ、その他諸々)
ヒアリング(システムに何を求めるか?)
-
ユーザー目線
- 一目見て分かる操作性
- 処理速度
- デザイン性、面白さ
- セキュリティの高さ
- 不具合のなさ
今回は個人開発なので、この部分に関しては予測して書いております。
達成するゴールを数値で明確化
- 基本設計(画面レイアウト、DB、必要機能の洗い出し):2週間
- 開発:2ヶ月
- テスト(仕様書作成、単体/結合テスト)、サーバーへのアップ:2週間
今回はシステム開発を行い、事業をするわけではないので売り上げなどの目標があるわけではないです。なので、開発期間をゴールに定めました。
クリアすべき課題に分解
- サーバーへのアップロード方法
- Batch処理(必要か未定)
- DBの設計
- UIを高める画面設計
- 保守性の高いコード
- 処理速度
ゴールの達成条件をSMARTに沿って整理
- Specific(ゴールが具体的か?)→OK
- Measurable(進捗を数値で測れるか?)→OK
- Achievable(達成可能か?)→OK
-
Relevant(当初の困りごとが解決するか?)
- タスクのやり/抜け漏れが多い→OK
- メモ帳でTODOリストを作成してもすぐにやめてしまう→OK
- タスクを忘れ提出物などの期限が過ぎてしまうことがある→OK
- Time-bound(期限が明確か?)→OK
システムに実装したい機能
TODOリスト要素
- 終わっていないタスクは設定した期限が近付くと通知する
- ルーティーンワーク、TODOワーク、提出物に分ける
- 期限が迫っているタスクに関しては色が赤に変化する
- タスク毎に重要度を決める(3段階ぐらい)
- 日、週、月ごとに現在のやるべきタスクが見れる
RPG要素
- タスクをクリアするとポイント(経験値)やお金が貰える
- 期限内にタスクが終了しないとポイント(経験値)やお金が減る
- 一定のポイントを貯めるとLevel Up
- お金で装備やアイテムを買える
- 敵を倒す
- ストーリを進められる
- 仲間を集めてギルドを作れる
- 職業を選べ、変更できる
実装したい機能を書き出しましたが、おそらく全て実装することは技術的にも時間的にも現実的ではないので、最初はこの中からいくつか選択して実装していこうと思います。
最後に
今回の要件定義はUdemyの以下のコースを受講した際の資料を参考に書いてみました。
また、今回は参考にしたアプリがあるので載せておきます