Skip to content

esm-bits/novice-timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

novice-timer

開発環境

  • IDE

    Eclipse Neon.3 (4.6.3)

  • フレームワーク

    SpringBoot (1.5.4)

導入方法(Eclipse)

  1. gitでmasterブランチをclone
  2. Eclipseで、ファイル→インポート→Gradle/Gradleプロジェクト、を選択してインポート
  3. プロジェクトを右クリックし、Gradle→Gradleプロジェクトのリフレッシュ、を選択
  • インポートにGradleプロジェクトがない場合、EclipseにBuildShipをインストールする必要がある

    • Eclipseのメニューバーからヘルプ→Eclipseマーケットプレイス→BuildShipで検索しインストール
  • GradleプラグインとしてGradle IDE Packを使用している場合

    • BuildShipをインストール
    • Gradle(STS)/Gradle(STS)Projectを選択してインポートすることも可能だが、BuildShipを使用するので上記の方法でインポートする
    • 参考
  • Lombokを使用しているため、EclipseへのLombokのインストールが必要である

    • Lombokのjarファイルをダウンロードして実行
    • 対象のIDEを聞かれるのでEclipseを選択してインストール

実行方法(Eclipse)

  • 方法1

    プロジェクトを右クリック→実行→実行の構成→NoviceTimerApplicationを選択して実行

  • 方法2

    NoviceTimerApplicationを表示して、右クリック→実行→Java アプリケーション、より実行

実行時の通知先について

  • src/main/resources/config/application.ymlファイルに通知を送るフックのurlを記述するが、GitHubで公開したくないのでurlの記述のないダミーファイルとしている

  • 実際のフックurlを記述したapplication-production.ymlを作成し、.gitignoreファイルに記述することでGitの管理から外している

  • 通常どおりに実行すると設定ファイルとしてapplication.ymlが読み込まれる。

  • application-production.ymlを読み込むには、実行時に環境変数SPRING_PROFILES_ACTIVE = productionを指定する(Eclipseの場合、実行→実行の構成→環境、に記述)

  • 通知を送りたくない場合、TimerService.NoticeTimerTasksendMessageメソッドの処理をSystem.out.printlnに変更するとよい

操作方法

UI

  • アジェンダ一覧画面

    • パス: GET /agendas
  • アジェンダ作成画面

    • パス: GET /agendas/create
  • アジェンダ編集画面

    • パス: GET /agendas/edit?id={agendaId}
  • アジェンダ詳細画面

    • パス: GET /agendas/detail?id={agendaId}

API

  • アジェンダの全取得

    • パス: GET api/agendas
  • 特定アジェンダの取得

    • パス: GET api/agendas/{id}
  • アジェンダの登録

    • パス: POST api/agendas

    • リクエストボディ:

      {
          "subjects": [
              {
                  "title": "title1",
                  "minutes": 5,
                  "idobata_user": "user1"
              },
              {
                  "title": "title2",
                  "minutes": 5,
                  "idobata_user": "user2"
              }
          ]
      }
  • アジェンダの更新

    • パス: PUT api/agendas/{id}

    • リクエストボディ:

      {
          "subjects": [
              {
                  "title": "new_title1",
                  "minutes": 10,
                  "idobata_user": "new_user1"
              },
              {
                  "title": "new_title2",
                  "minutes": 10,
                  "idobata_user": "new_user2"
              }
          ]
      }
  • サブジェクトの更新

    • パス: PUT api/agendas/{id}/subjects/{number}

    • リクエストボディ:

      {
          "title": "new_title",
          "minutes": 10,
          "idobata_user": "new_user"
      }
  • アジェンダの全削除

    • パス: DELETE api/agendas
  • 特定アジェンダの削除

    • パス: DELETE api/agendas/{id}
  • タイマーの開始

    • パス: PUT api/agendas/{id}/subjects/{number}/timers

    • リクエストボディ:

      {
          "state": "start"
      }
    • 備考: タイマーの実行は同時に1つのみ、実行中のタイマーがある場合は開始されない

  • タイマーの終了

    • パス: PUT api/agendas/{id}/subjects/{number}/timers

    • リクエストボディ:

      {
          "state": "end"
      }
  • 備考

Herokuへのデプロイ方法

  • Herokuを使用する準備

    • Herokuアカウントを作成する
    • Heroku CLIをインストールする(参考のDownload the Heroku CLI for...から)
    • heroku loginコマンドを使用して、登録したメールアドレスとパスワードでログインする
    • heroku keysコマンドでキーが追加されたか確認する。ない場合はheroku keys:addコマンドで追加する
  • Herokuへデプロイ

    • ./gradlew buildコマンド(windowsはgradlew.bat build)でビルドを実行し、生成された実行可能jar(build/libs/novice-timer-0.0.1-SNAPSHOT.jar)が問題なく実行できるか確認する
    • heroku loginコマンドを使用してログイン
    • heroku createコマンドで新しいHerokuアプリをプロビジョニング
    • heroku config:set BUILDPACK_URL=https://github.com/marcoVermeulen/heroku-buildpack-gradlew.gitコマンドを実行し、使用するBuildpackを変更
    • git push heroku masterコマンドで作成したアプリをHerokuへプッシュ
    • heroku openコマンドでアプリをブラウザで実行できる
  • 備考

    • Herokuではmasterが実行される
    • 初回はHerokuにmasterがないのでgit push heroku master:masterでプッシュする
    • アプリの名前はheroku create時に適当に決められるが、heroku apps:renameコマンドで任意の名前に変更できる
    • Herokuでの環境変数は、heroku config:setコマンドで登録できる
    • Heroku標準のBuildpackでは、SpringBootアプリをgradle wrapperでうまくビルドできない。そのためカスタムのBuildpackを利用するためにheroku config:set BUILDPACK_URL=https://github.com/marcoVermeulen/heroku-buildpack-gradlew.gitコマンドを実行する
  • 参考

参考書

  • 槙俊明(2016)『はじめてのSpringBoot[改訂版]』工学社.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •