個人の利用に特化した、本当に必要な機能だけの「シンプルなタスク管理アプリ」を目指しました。

クリエイターの複雑なワークフローを可視化する、Javaベースのタスク管理アプリケーション

img_screen_tasks-manager-java_002

イラスト制作、デザイン、コーディングといった、工程が細分化されがちなクリエイティブ業務に特化したタスク管理ツールです。単なるToDoリストに留まらず、作業を細かく分解できる「サブタスク機能」や、プロジェクト全体の流れを把握するための「ガントチャート機能」を備えています。

※ベーシック認証を設定しています。
ID:taskmanager-java-v1  PW:webapptj202502

JAVA(SpringBoot)で作成

技術選定の理由と学習テーマ

型安全な開発: Javaを採用し、型を意識した堅牢なバックエンド実装を目指しました。

実用的なエラーハンドリング: GlobalExceptionHandler を導入し、ファイルアップロードサイズ制限などの例外処理をユーザーに分かりやすく通知する仕組みを構築。

環境のポータビリティ: Docker化を行うことで、どの環境でもコマンド一つで開発・本番環境が立ち上がる構成を実現。チーム開発を想定した構成にまとめました。

AWS(lightsail)にデプロイ

1. VPSによるサーバー環境の自力構築

AWSのマネージドサービス(App Runnerなど)に頼りすぎず、Linuxサーバーのセットアップから自分で行うことで、OSレイヤーやネットワークの基礎知識を習得しました。

2. Docker Compose による環境のポータビリティ実証

  • OS: Amazon Linux 2 / Ubuntu (※実際に使用したOS)
  • 作業内容: SSHによるセキュアなアクセス設定、静的IPアドレス(Static IP)の割り当て、ファイアウォール(ポート制限)の適切な設定。
  • 内容: docker-compose.yml を活用し、JavaアプリとMySQLを同一ネットワーク内でコンテナとして起動。環境変数を適切に管理し、開発環境と本番環境の切り替えをスムーズに行える構成にしました。

3. コストとパフォーマンスの最適化

個人開発におけるコストパフォーマンスを考慮し、Lightsailの最小プランでSpring Bootアプリが安定動作するよう、JVMのメモリ割り当てやコンテナの起動オプションを調整しました。