最初に
以前、TODOリスト×RPGというWebアプリを作成したいと考え、似たような記事を書いたのですが、余りにも機能が https://habitica.com/ に似てしまったため、作成するWebアプリを根本から考え直しました。
なので、この記事は新たに作るWebアプリの要件定義になります。
Springでポートフォリオを作成する
本日からSpringを用いてポートフォリオを作成する過程を投稿していきたいと思います。
今回は、まず始めに要件定義を書いていきます。
要件定義
プロジェクト名
StudyQuest
勉強にRPG要素を組み合わせたWebアプリを作成していこうと思います。
プロジェクト概要
- 楽しみながら勉強できる
- 勉強時間を管理し、勉強の継続を図る
本来であればつまらない勉強にRPG要素を含めることで、勉強の継続化を図る目的があります。
現状の問題点
自分
- 勉強を習慣化することができない
- 楽しみながら学習をすることができない
ゴールの設定(本来あるべき状態、目指す状態)
自分
- 目標を設定することで勉強の継続ができる
- RPG要素を入れることで楽しみながら勉強できる
勉強×RPG
- 楽しみながら勉強ができ、勉強の習慣化に繋がる
- 使いやすさ、わかりやすさ
- 勉強するごとに自分(アバター)が成長していく
- 自分の学習状況を把握することができる
現状とゴールのギャップ(解決すべき課題の洗い出し)
- 技術不足(サーバーへのアップロード、Batch処理、デザイン、設計ノウハウ、その他諸々)
ヒアリング(システムに何を求めるか?)
-
ユーザー目線
- 一目見て分かる操作性
- 処理速度
- デザイン性、面白さ
- セキュリティの高さ
- 不具合のなさ
今回は個人開発なので、この部分に関しては予測して書いております。
達成するゴールを数値で明確化
- 基本設計(画面レイアウト、DB、必要機能の洗い出し):2ヶ月
- 開発:2ヶ月
- テスト(仕様書作成、単体/結合テスト)、サーバーへのアップ:2週間
今回はシステム開発を行い、事業をするわけではないので売り上げなどの目標があるわけではないです。なので、開発期間をゴールに定めました。
クリアすべき課題に分解
- サーバーへのアップロード方法
- Batch処理(必要か未定)
- DBの設計
- UIを高める画面設計
- 保守性の高いコード
- 処理速度
ゴールの達成条件をSMARTに沿って整理
- Specific(ゴールが具体的か?)→OK
- Measurable(進捗を数値で測れるか?)→OK
- Achievable(達成可能か?)→OK
-
Relevant(当初の困りごとが解決するか?)
- 勉強の習慣化→OK
- 楽しみながら勉強できるか→OK
- Time-bound(期限が明確か?)→OK
システムに実装したい機能
勉強要素
- 目標を設定することができる
- 習慣、TODO学習に分ける
- 日、週、月ごとの勉強時間、時間配分がわかる
RPG要素
- 学習を行うと難易度に応じたポイント(経験値)やお金が貰える
- 目標などが達成できないとポイント(経験値)やお金が減る
- 一定のポイントを貯めるとLevel Up
- お金で装備やアイテムを買える
- モンスターを倒す
- ストーリを進められる
- 仲間を集めてパーティーを作れる
- 職業を選べ、変更できる
実装したい機能を書き出しましたが、おそらく全て実装することは技術的にも時間的にも現実的ではないので、最初はこの中からいくつか選択して実装していこうと思います。
また、サーバー側はSpring、クライアント側はReactを用いて開発することを考えています。
最後に
今回の要件定義はUdemyの以下のコースを受講した際の資料を参考に書いてみました。
また、今回は参考にしたアプリがあるので載せておきます