プログラミング未経験者初めてのwebアプリケーション開発（ポートフォリオ用）

# はじめに

2025年2月から職業訓練校に通い、PostgreSQL、JavaのServletを使用したWebアプリケーション制作について学習しています。  
未経験ではありますが、その中で学んだことからポートフォリオとしてシンプルな機能のアプリを制作したので、そのアプリケーションについての機能、制作手順、課題をまとめています。

まだ実装できていない機能や使い勝手含め機能としては不完全ではありますが、

- 今まで学んだ技術を使い制作したこと
- とにかく一旦リリースすること

を最重要視したため現状で一旦公開しております。  
※今後も機能は順次追加予定です。

**簡単な経歴**　
29歳 工業高校卒
建築関係（給排水設備）4年　
製造業　　　　　　　　1年
機会保全業　　　　　　4年
プログラミング　学習期間　5ヶ月

# 参考資料
スッキリわかるJava入門

スッキリわかるJava入門 実践

スッキリわかるサーブレット&JSP入門

スッキリわかるSQL入門

# 制作期間

制作期間は 5/7~5/28（現在）  
全体として公開までおよそ3週間です。

github
https://github.com/kumaryu1101/-portfolio

---

## 成果物

ダンスバトルイベントの「イベント管理・採点システム」

# 制作の背景

ポートフォリオということではあるが実際に使えるもの、自身の体験から実際に課題を解決できそうなものを作りたいと考えていました。  
自分は28歳まで趣味でダンスをしており、ダンスバトルを中心にさまざまなイベントに参加、運営をしてきました。

その中でイベント運営した際、ほとんどのイベントでは「予選を行い採点→点数の集計→点数の高い参加者が本選に出場」という流れになっていました。  
上記の点数を集計した際、本選に上がるべき人が何らかのミスで抜けてしまったことがあります。

**問題点として**

- 集計する際、紙に手書きで記入していた（字の汚さ、記入する欄のずれ）
- 口頭による連絡（聞き間違え）
- 目視による本選出場者の選定（見間違い、見逃し）

などの点から、審査員が採点したら自動に集計し、点数の高い順に表示するWebアプリケーションがあれば解決できるのではないかと考えました。  
また、イベントの参加から自動で行えれば、主催者の負担が減るであろうと考えつきました。

# 作成した機能

- イベント参加  
　※ログイン機能については早期、追加実装予定
- イベントの一覧表示・作成
- イベントの採点結果表示（参加者一覧）
- 参加者に採点

# 制作の流れ

まず初めに、開発環境の選定と要件定義をしました。

**開発環境**

- 言語  
  JavaEE(JSP/サーブレット)
- データベース  
  PostgreSQL
- 環境  
  Tomcat(10.1.10)  
  Eclipse IDE(4.28.0)

**要件定義**

作成前に定義したもの

- Must機能
  - 参加者の採点
  - 集計結果の確認
  
- 可能であれば
  - ユーザー登録（ログイン）できる機能
  - イベントの作成・イベントの一覧表示

![スクリーンショット 2025-05-29 200625.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4100328/f6b6a771-80da-4662-b4a4-56e4c5a0efdb.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4100328/d8615be8-beed-48f8-a70e-d1818d470c62.png)




**データベース設計**

ER図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4100328/dbd0ca01-9d7f-42c7-9792-9f1af6ffc969.png)


# 機能・画面実装

ひたすらコードを書き、エラーと闘いながら進めていきました。  
今までの課題の学習と違い、理解していない箇所が多かったため、正確には検証→エラー解決をひたすら繰り返していたイメージです。

- 問題がどこにあって、どのように切り分けて考えるか。
- DBの実装がなかなか進まなく、SQL文のエラーの見極めが難しかった。
- 画面の実装に関してはその都度Webで検索し、最低限の見た目を整えるにとどまっています。（余裕があればもっといろいろ拘りたかったが、動くものとして公開することが最優先だったため後回しに）
- 
1.イベント作成
2．イベント登録（参加者がエントリー）
3.採点
![イベント作成.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4100328/e9292293-9aae-46e7-9e0d-d41af28495cf.gif)

![イベント参加（エントリー）.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4100328/cd54e602-0668-42f5-96e4-16998e9f09b2.gif)

![採点.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4100328/6f11f319-1b43-4def-ae4a-91246fd47f07.gif)



# 振り返り

よく言われることですが、やはり実際に作ってみることが何よりの学びにつながると実感しました。
これまで訓練校やネット上の記事を参考に学習を進めてきましたが、処理の流れを完全に理解しきれなくても、なんとなく実装できてしまうことが多々ありました。
しかし、自分で機能を決めて開発を進めると、想像以上にエラーが発生し、そのたびに原因を切り分け、質問し、検証を繰り返しました。
この過程を通じて、冷静に問題を分析し、試行錯誤しながら解決する力が鍛えられました。
解決できたときの達成感は大きいものの、すぐに次の課題に直面し、再び検証を続ける――こうした繰り返しこそが、実際の業務でも求められるスキルなのだろうと考えながら取り組みました。
また、自分が非常に恵まれた環境にいることも改めて実感しました。
訓練校の先生はプログラミングに精通しており、直接質問できることが成長を大きく後押ししていると感じます。
さらに、先生は常に親身になってアドバイスをくださり、複雑なコードも論理的かつ分かりやすくに説明してくださるため、理解が深まり、より体系的な思考が身につきました。
この環境の恩恵を最大限に活かしながら、今後も学習を継続し、さらなるスキルアップ、知識の定着をしていきたいと考えています。

# 課題点

実装できなかった機能などもあり不完全なので、今後の課題を備忘録として残しておきます。

- 現状、誰でも参加者に採点できてしまい、結果を確認できてしまっている
- ソースコードが汚い箇所がある  
　こちらはエラーなどの修正をしていきコードが冗長し汚くなったと思われる。  
　実際の業務でこのように意図の伝わらないコードを書いてしまうと開発に支障をきたしてしまうことが考えられるため、今後リファクタリングをしていきたい。
- スペルミス  
  SQL文でコンパイルエラーがでないため、ミスが多発した。  
  タイポやスペルミスなど超初歩的な部分で詰まることが何度もあったので、クラスやメソッドの命名も含めてより正確にできるように意識する。
- JSPファイルにjavaコードが乱雑している
　EL式やJSTLを後日知ったため、今後リファクタリング予定。    
- ログイン機能が不完全

# まとめ

反省点や改善点は正直あげるとキリがないのですが、結果的に実際にアプリケーションを作ってみて一番身につくと感じました。 
何より、どんな形であれ出来上がった時の達成感がありモチベーションにも繋がりました。
実際に作ってみたいアプリケーションはまだあるので、今後も実際に形にしながら学習していきたいなと思います！
次はspringフレームワークを使って、何か作ってみたい！

長文となりましたが、最後まで見ていただきありがとうございました！