😇

やること モダンな環境でのアプリ開発

2025/01/17に公開

中長期プロジェクト: REST APIで時間管理ツールを開発

プロジェクト概要

時間管理ツールをテーマに、実務で役立つ機能を備えたアプリケーションを開発。学んだ内容をブログで発信しながら、技術力を高めることを目指します。


機能要件

  1. プロジェクト管理
    • プロジェクトの作成、編集、削除、閲覧。
  2. タスク管理
    • タスクの登録、進捗更新、ステータス管理。
  3. タイムトラッキング
    • 作業時間の記録と集計。
  4. データの視覚化
    • AWS QuickSightを活用して作業時間やタスク進捗をグラフ化。

技術スタック

  1. バックエンド: Laravel
    • REST APIの構築。
    • 認証機能の実装(例: Sanctum)。
    • タスクやプロジェクトのデータ管理。
  2. フロントエンド: React
    • ダッシュボードUIの作成。
    • リアルタイム更新(例: WebSocketやPolling)。
  3. データベース: MySQL
    • プロジェクト、タスク、時間記録データの管理。
  4. クラウドサービス: AWS
    • S3でログやファイルの保存。
    • QuickSightでデータ視覚化。
    • EC2またはECSでアプリケーションをホスト。
  5. GitHub Actions
    • CI/CDフローを構築して、以下を自動化:
      • 自動テストの実行(例: PHPUnit)。
      • 問題がなければAWS上に自動デプロイ。

GitHub Actionsの自動化フロー

  1. トリガー
    • mainブランチへのプッシュやプルリクエストを検知。
  2. ステップ
    • コードのチェックアウト。
    • 依存関係のインストール(Laravel: Composer、React: npm)。
    • 自動テストの実行。
    • ビルド処理(React: npm run build)。
    • AWS S3やEC2へのデプロイ。
  3. 設定
    • AWS CLIを活用し、S3やEC2にデプロイ。
    • SecretsにAWSのキーを設定。

期待する成果

  • 学べること
    • LaravelとReactでのAPI・UI開発。
    • AWSを活用したクラウドホスティングとストレージ管理。
    • GitHub ActionsによるCI/CDフローの構築。
  • アウトプット
    • 実務で活用できるアプリケーション。
    • ブログ記事や技術的知見の発信。
  • スキルアップ
    • モダンな開発フローの習得。
    • クラウドと自動化の技術力向上。

次のステップ

  1. プロジェクトの設計
    • 機能要件の詳細化。
    • データベース設計。
  2. 環境構築
    • 開発環境(Laravel + React)を構築。
    • GitHubリポジトリとGitHub Actionsの設定。
  3. 実装開始
    • バックエンドAPIからスタートし、順次フロントエンドやAWS統合を進める。

できたらめっちゃかっこいい!

Discussion