Skip to content

タスク管理&タイマーアプリ TaskCircle(タスクサークル) React + Spring Boot

License

Notifications You must be signed in to change notification settings

ToshihiroWatanabe/task-circle

Repository files navigation

TaskCircle

作業状況を仲間と共有できる、タスク管理&タイマーWebアプリです。

GitHub repo size License MIT

概要   |    使い方   |    開発履歴   |    使用技術   |    インストール手順   |    License

TaskCircle 2021-07-10

アプリはこちらで公開しています。
https://task-circle.onrender.com

💡 概要

タスク管理タイマー他のユーザーのステータス表示機能のあるWebアプリケーションです。

フロントエンドはReact、バックエンドはSpring Bootで制作しています。詳しい説明はそれぞれのREADME.mdをご覧ください。

アプリの機能の紹介はこちら↓
frontend/README.md

APIの表とER図はこちら↓
backend/README.md

(旧)AWSでのデプロイについて
  • ビルド時は、まずReactアプリケーションをビルドしたものをSpring Bootプロジェクトに統合してから、Spring Bootアプリケーションをビルドします。
  • AWS上でEC2とRDSを作成し、EC2上のTomcatでSpring Bootアプリケーションを起動させています。
  • CI/CDツールはCircleCIを利用していて、mainブランチへのプッシュがあると自動でデプロイされます。
  • 独自ドメインを取得してRoute53に登録し、Let's Encryptで取得した証明書をTomcatにインストールし、80番と443番ポートの通信を8443番ポートへ転送してHTTPS化しています。

🔰 使い方

TaskCircle_QuickStartGuide_1

TaskCircle_QuickStartGuide_2

TaskCircle_QuickStartGuide_3

TaskCircle_QuickStartGuide_4

📅 開発履歴

2021年6月18日 Reactプロジェクトを作成
2021年6月29日 Spring Bootプロジェクトを追加
2021年7月 3日 AWSにデプロイし、アプリ公開
2021年7月15日 TypeScriptへの移行開始
2022年3月21日 ホスティングサービスをAWSからHerokuに移行
2022年11月21日 ホスティングサービスをHerokuからRenderに移行

👨‍💻 使用技術

React JavaScriptのライブラリです。Create React Appでプロジェクトを作成しました。
TypeScript JavaScriptで型宣言をできるようにした言語です。
Material-UI ReactのUIフレームワークです。Googleが提唱するマテリアルデザインのようなUIを作ることができます。
Jest, React Testing Library JavaScriptのテストランナーと、Reactコンポーネントのテストライブラリです。
Spring Boot Javaのフレームワークです。バックエンド(サーバーサイド)アプリケーションとして利用しています。
WebSocket (STOMP, SockJS) HTTP通信とは別の通信方法で、リアルタイムな双方向通信ができます。ルーム機能でタイマーの状況を送受信するのに利用しています。
MyBatis Javaの世界とデータベースの世界をつなぐO/Rマッパーです。
MySQL データベースを管理するためのシステムおよび言語です。基本的なCRUD処理(新規作成、取得、更新、削除)を行っています。

🛠 インストール手順

実行環境

  • Java 11.0.10
  • Apache Maven 3.8.1
  • Node.js 14.16.1
  • npm 7.16.0
  • MySQL 8.0.25

※Dockerで実行することもできます。

データベースの作成

MySQLでデータベースを作成し、 backend/src/main/resources/schema.sqlにあるSQL文でテーブルを作成してください。

環境変数の設定

Spring Boot用の環境変数

環境変数を設定するか、backend/src/main/resources/application.propertiesのデータベースの接続に関する記述を書き換えてください。

環境変数名 説明
MYSQL_URL jdbc:mysql://ホスト名:ポート番号/データベース名
MYSQL_USERNAME データベースに接続するユーザー名
MYSQL_PASSWORD データベースに接続するユーザーのパスワード

React用の環境変数

Googleログイン機能を使用する場合は、frontendディレクトリに.envファイルを作成し、環境変数を記述してください。 ※2022年11月21日追記: 現在不具合のため使えません。

環境変数名 説明
REACT_APP_CLIENT_ID Google OAuthのクライアントID

インストールと実行

リポジトリをクローンします。

git clone https://github.com/ToshihiroWatanabe/task-circle.git

Dockerを使わない場合

Spring Bootプロジェクトのディレクトリに移動します。

cd task-circle/backend

Mavenで依存関係をインストールします。

mvn install

Spring Bootアプリケーションを起動します。

mvn spring-boot:run

Reactプロジェクトのディレクトリに移動します。

cd ../frontend

npmで依存関係をインストールします。

npm install

Reactアプリケーションを起動します。

npm start

Dockerを使う場合

プロジェクトのディレクトリに移動します。

cd task-circle

Docker Composeで起動します。

docker-compose up

License

The MIT License (MIT)

Copyright © 2022 ワタナベトシヒロ

About

タスク管理&タイマーアプリ TaskCircle(タスクサークル) React + Spring Boot

Topics

Resources

License

Stars

Watchers

Forks

Languages