12月10日

今後の予定について

12月17日まで

基本機能が動作するようにがんばりましょう!
機能の単位はロバストネス図で考えること。

12月17日

発表用のパワポ作成の課題を誰かに割り当てる
(テンプレートを用意するので必要事項を記入する)
発表する機能の動作確認。

1月7日

1現目はチーム内でパワポの確認とデモ内容の確認。
2現目は発表。

基本機能の確認

新規登録

  1. トップページを表示する
  2. 「新規登録」などのリンクをクリック
  3. 新規登録の画面を表示する
  4. 新規登録の画面で入力する
    1. 問題なければ新規登録する
    2. 不足があればエラー表示する

ログイン

  1. トップページを表示する
  2. 「ログイン」などのリンクをクリック
  3. ログインの画面を表示する
  4. IDとパスワードを入力する
    1. 一致すればホーム画面に進む
    2. 不一致ならエラー表示する

Webアプリの基本機能

  1. ホーム画面にWebアプリ特有の情報を表示する?
  2. ホーム画面からデータを送信する
  3. 送信したデータがDBに登録される(はず?)
  4. 送信したデータが画面上に表示される(?)

11月12日

課題をたくさん完了させよう!

課題をなかなか完了できない場合は、課題を細かく分割する。

XxControllerを作成する。
XxControllerにURL=/hoge の GET リクエストを実装する。
hoge.jsp を作成する。
XxControllerのURL=/hoge の応答で、hoge.jsp を表示する。
XxControllerのURL=/hoge の GET リクエストで message データを設定する。
hoge.jsp で message データを表示する。
hoge.jsp に form を追加する。
XxControllerにURL /hoge の POST リクエストを実装する。
XxControllerのURL=/hoge の POST リクエストの応答で resp.jsp を表示する。

10月16日

Git関連情報

Git リポジトリの削除

Gitリポジトリを削除するには、Backlog の「プロジェクト設定」で Git を選択し、「編集」をクリックする。
そこで、リポジトリの削除ができる。

Git で管理したくないファイル/ディレクトリ

.gitignore ファイルに記述して、.gitignore をコミット/プッシュする。

.で始まるファイルをプロジェクトエクスプローラで表示する

プロジェクトエクスプローラ右上の▽をクリックし、「ビューのカスタマイズ」を選択する。
「.* リソース」のチェックをはずしてOKする。

10月9日

ログインしているユーザー情報の取得

ログインしたユーザー情報を取得するには、コントローラの引数に Principal を追加する。
追加した Princical から getName()メソッドでユーザー名を取得し、addAttribute() で name に値を設定している。

MyDataController.java

	@RequestMapping(value = "/mydata", method = RequestMethod.GET)
	public String mydata(Model model, Principal p) {
		model.addAttribute("name", p.getName());
		model.addAttribute("title", "MyData");
		model.addAttribute("message", "データを入力してください");
		MyData mydata = new MyData();
		model.addAttribute("myData", mydata);
		MyDataDao<MyData> dao = new MyDataDaoCriteria();
		List<MyData> list = dao.getAll();
		model.addAttribute("datalist", list);
		return "mydata";
	}

mydata.jsp

<body>
	<h1>${title}</h1>
	<p>${message}</p>
	<p>ようこそ ${name} さん</p>
	<table>
	<form:form modelAttribute="myData">

10月2日

チーム開発

チーム開発のプロジェクト管理にBacklogを使用する。
Backlogには、課題管理、Git、Wikiなどの便利なツールがある。
チーム開発を通して、各ツールの使い方に慣れる。

今後の作業の進め方

  1. スタートアップミーティング
  2. チームでの開発作業
  3. ふりかえり

スタートアップミーティング

朝、10分程度のスタートアップミーティングを行う。
ミーティングで以下の内容を決める。

  • 1日のチーム内の作業分担を決める。
  • 各人がBacklogに課題を登録する。

チーム開発作業

ひとりで難しいときはペアプログラミングで効率を上げる。
課題に書いた内容を実装する。

  • ドキュメント整理(Wikiを活用)
  • JSP作成
  • コントローラ作成
  • エンティティ作成

Wikiで整理するとよさそうな情報

  • ロバストネス図(画面遷移図)
  • 画面デザイン
  • クラス図
  • シーケンス図

12:50ごろから1日のふりかえりを行う

ミーティング後、全員の課題を確認する。
KPT : Keep / Problem / Try

  • 全員の課題の進捗確認。
  • チームごとのKPTの確認。

Spring Securityによるユーザー認証

サイトにログイン機能を追加するには、Spring Security を使用すると簡単に実装できる。
Spring Security の設定ファイルを読み込ませるために、contextConfigLocation を追加する。

pom.xmlの変更

Spring Security のライブラリを追加する。

pom.xml

		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-core</artifactId>
		    <version>4.0.1.RELEASE</version>
		</dependency>
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-web</artifactId>
		    <version>4.0.1.RELEASE</version>
		</dependency>
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-config</artifactId>
		    <version>4.0.1.RELEASE</version>
		</dependency>

pom.xml を変更したら、プロジェクトの更新と、maven install を実行する。

設定ファイルを読み込ませる

web.xml

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/application-config.xml</param-value>
    </context-param>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-security.xml</param-value>
    </context-param>

設定ファイルを作成する

src/main/resources/spring フォルダに、spring-security.xml を作成する。
まずはXMLで指定したユーザーでログインできるようにする。
ユーザー名: user
パスワード: user

あとでDBから取得するように変更する。

spring-security.xml

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-4.0.xsd">

    <http pattern="/" security="none"/>
    <http pattern="/index.jsp" security="none"/>
    <http auto-config="true" >
        <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
        <form-login />
        <logout />
    </http>

    <authentication-manager>
        <authentication-provider>
            <user-service>
                <user name="admin" password="admin" authorities="ROLE_ADMIN" />
                <user name="user" password="user" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>
</beans:beans>

すべてのページにアクセスする前にアクセス権限のチェックを実行させるため、web.xml の最後に、フィルターを追加する。

web.xml

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
 
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

9月28日

チームごとの決定事項

  • グループA
    • チーム名:つぶやき6ヶ
    • リーダー:新納
    • Webアプリ:Twitter
    • Webアプリ名:Digtter
  • グループB
    • チーム名:harunoumi
    • リーダー:芳賀
    • Webアプリ:匿名掲示板
    • Webアプリ名:はがちゃんねる(HGCH)
  • グループC
    • チーム名:kentomori
    • リーダー:森
    • Webアプリ:スケジュール管理
    • Webアプリ名:スケジュール管理
  • グループD
    • チーム名:SESオールスターズ
    • リーダー:篠原
    • Webアプリ:checkpad
    • Webアプリ名:checkpad
  • グループE
    • チーム名:歪みねぇやぴ軍団
    • リーダー:江藤
    • Webアプリ:Twitter
    • Webアプリ名:本格的♂TEITTER

課題の取り扱い

課題は誰でも作れる。
課題を作るときに、担当者を割り当てる。

  1. 課題を作成する(未対応)
  2. 課題に取り掛かる前に「処理中」に変更する
  3. 課題を済ませたら「処理済」に変更する
  4. 「処理済」の課題を他のメンバーに確認してもらう
  5. 確認OKなら、コミットしてプッシュする
  6. 確認したメンバーが「完了」に変更する

リーダーは課題「ロバストネス図を作成する」を追加する。
他のメンバーは課題「クローンする」を作成する。

9月25日

Backlogを使用したチーム開発

決めること

  • チーム名
  • リーダー
  • 作成するWebアプリ
  • Webアプリ名

Webアプリの例

  • 匿名掲示板
  • Twitter
  • LINE
  • SNS
  • Wiki
  • その他

チームリーダーが以下の作業を実施。

  1. Backlog にアクセス。
  2. 「プラント価格はこちら」をクリック。
  3. 右下の「1プロジェクト、10人までのフリープランはこちら」をクリック。
  4. 必要事項を入力してスペースを作成。
  5. 「ユーザーの追加」からチーム全員を招待する。
  6. ユーザーID:satoshis、メールアドレス:satoshis@gmail.com も招待。
  7. プロジェクトを作成し、プロジェクトにメンバーを追加する。
  1. グループA
  2. https://diguhaga.backlog.jp/

  3. グループB
  4. https://harunoumi.backlog.jp/

  5. グループC
  6. https://kentomori.backlog.jp/

  7. グループD
  8. https://ukshhm.backlog.jp/

  9. グループE
  10. https://yapy.backlog.jp/