当システムは、ユーザ情報、投稿記事情報を管理しており、ユーザがWebで記事を投稿・編集・削除を行える機能、その記事に対してコメント・ギフティングを行える機能を提供する。
今回は管理者機能を設けていないため、ユーザは全機能を利用可能。主に、以下の5つの機能に大別される。
当システムにログインする機能。
a.ログイン
b.ログアウト
c.ログインユーザ登録
DB内の記事を検索・一覧表示できる機能。
a.記事検索、一覧表示
記事の投稿・編集ができる機能。
a.記事投稿
b.記事編集
c.記事削除
ギフティングする際に必要なポイントを購入する機能。
a.ポイント購入
b.ポイント交換(二次開発)
記事に対し、コメント・ギフティングする機能。
a.コメント投稿
b.ポイントギフティング
c.ギフティング履歴(二次開発)
今回の模擬プロジェクトでは、様々な意見が出た中で、「SNSにちなんだシステムを作る」、ということにフォーカスして取り組んだ。(Instagram、noteなど…)
⇒最終的に私たちの意見は、「ブログサイト」でまとまった。
プログラムの詰めが甘かったり、設計の段階で構想に対して必要な要素を網羅しきれなかったために実装を断念した機能もある。
⇔技術的に戸惑ったり、難航する箇所がいくつもあったが、経験や知識の増加や、メンバーや講師の方のサポートにより、メンバー全員が以前よりもスムーズに開発を進めることができ、また前回やり残した箇所と似た箇所にも取り組むことができた。
1.チーム全体で、進捗の共有が万全でなかった時もあり、作業効率が下がった。
2.誰が見ても分かりやすいようなプログラミングが出来ていない時が目立った。
(spring bootで使用するControllerにて、何をしているメソッドなのかわかりづらい、など)
1.自分の担当箇所が出来たことだけが重要ではなく、設計通りにシステム開発が進められているかが重要だと知り、こまめな報連相を心がけること。
2.事前に、ソースコードに関するルールを定めておくこと。
依然として詰めの甘さが起因して、二次開発化や設計書を修正せざるを得なくなるような事態が何度か起こった。
しかし、二度目の模擬プロジェクトということもあり、前回の課題点や経験などを、チーム全体で活かして取り組めたところは多かったかと思う。
さらに、お互いに意見を出し合うことで、自分1人では気付けなかった事にも気付くことが出来た。
初めてのチーム開発に苦戦しながらも、コミュニケーションを密にとって状況を常に共有し、主要機能のほとんどを実装することができました。
チーム開発によるモチベーションの向上も手伝ってか、2ヶ月目の個人発表時とは比較にならないほど、全体的にデザイン、コード品質、システム機能が優れています。
1ヶ月でここまで成長されたことに、講師自身も驚いた、とても優れたシステムに仕上がっています。