概要
- 勉強のためにWebアプリの開発を試みる
- ついでに勉強したことを残すため、アドベントカレンダーへの投稿も試みる
- 投稿日までに完成せず、ユーザ管理機能の実装のみ & 記事も前日に執筆
背景
- 内定先のIT企業で活躍するためにWebアプリ開発の勉強を決意
- 内定先で開発に主に用いている(らしい)JavaでのWebアプリ開発を勉強することに
- Javaはそこそこ使ったことがあるが、Webアプリ開発をしたことがないため、udemyで手頃な講座を受講
- 完全に理解した(大嘘)ので、別言語で開発していた作りかけのWebアプリを本格的に開発してみる
開発した(かった)もの
発注管理アプリケーション
- 研究室内で学生が行っていた発注管理を行いやすくする
- 現在の発注管理はSlack上で行っているため
- 発注状況の管理が手間
- プランが変更することになった場合、履歴が消える可能性がある
- 以前にハッカソンでVue.jsを使用した開発を試みたが中途半端で実用化に値しないもの
- Todoアプリを少しいじった程度のもの
開発
どこまでできたか
- 要件定義(もどき):完了
- 設計(もどき):完了
- 開発:未完了
- ログイン画面:完了
- ユーザ管理:完了
- 物品管理:未着手
- テスト:未着手
要件定義
- 個人開発であり、かつ元々何をしたいかを決めていたので要件定義をしたことにしてヨシ!(よくない)
- 発注管理:発注依頼、発注状況確認、発注状況変更
- ユーザ管理:ユーザ追加・削除、役職変更、役職に応じた機能提供
設計
- ユーザの役職毎に使用できる機能を分ける
- ゲスト(guest):発注依頼、発注状況閲覧のみ
担当者(menber):guestが使える機能+発注状況の変更
- 管理者(adimin):memberが使える機能+ユーザ登録・削除、ユーザの役職変更
- 発注管理
- 発注希望者が物品情報(物品名、金額、予算、発注先)を登録
- 担当者をmeberの中から自動割り当て
- 担当者は状況に応じて発注状況を変更
開発
開発環境
- Java:1.8.0_351
- Tomcat:10.0.27
- MySQL:8.0.31
開発状況
ログイン画面
- jsp側に条件分岐を追加し、ログイン時の役職に応じて表示するメニューを追加
こんにちは <%= name %> さん<br><br>
アカウント管理<br>
物品管理<br>
<% if(role.equals("member") || role.equals("admin")){ %>
物品登録<br>
<% } %>
<% if(role.equals("admin")){ %>
<a href="./admin.jsp">ユーザ管理</a><br>
<% } %>
ユーザ管理
- フォームから情報を取得し、入力情報に応じてMySQLでユーザデータを追加・修正・削除
今後の課題
- 発注管理機能を追加し、最低限のアプリケーションを完成させる
- UIも少し凝ってみる
- セキュリティについてちゃんと考える(せめてSQLインジェクション対策くらいはする)
- JavaBeansをちゃんと理解する
まとめ
- ユーザ管理機能まで実装できてえらい!
- 今年はちゃんと記事も書いてえらい!(去年は書くことがなく投げ出したため)
- 入社に向けて勉強できてえらい!