Coder Social home page Coder Social logo

ryokohbato / reikai-kouza Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kmc-jp/reikai-kouza

2.0 0.0 0.0 1.68 MB

例会講座の自動割当システム

License: Apache License 2.0

TypeScript 96.32% JavaScript 2.54% Shell 0.42% Dockerfile 0.31% Makefile 0.41%

reikai-kouza's Introduction

例会講座

Deploy Test Lint

⚡ 概要

議題/2021/例会・例会講座の見直し

📅 スラッシュコマンド

/reikai-kouza-check

例会講座の担当日を確認する。

/reikai-kouza-cancel

例会講座の担当をキャンセルする。手続きは送られてきた内容に従ってください。

🔨 ビルド

docker を用いる場合

以下の通りに実行すれば、./dist 以下に生成されます。(yarn build:production を実行した場合と同様に生成されます。)

$ ./prepare.sh
$ ./production-build.sh

docker を使用しない場合

yarn が必要です。Dockerを使用した場合と同様に、./dist 以下に生成されます。

$ cd reikai-kouza
$ yarn install
$ yarn prepare
$ yarn build              # または、yarn build:production

🎨 フォーマット

$ # ビルドの手順は済んでいるものとします
$ yarn fix

🐎 実行

事前に secret/keys.json を設定する。 secret/keys.example.json に設定例がある。

additionalAssignTask.js

追加の割り当てを行う。

実行例

$ node additionalAssignTask.js $(date +"%Y%m%d")

assignTask.js

割り当てを行う。

実行例

$ node assignTask.js $(date +"%Y%m%d")

background.js

サーバー側の処理

実行例

$ node background.js

publicAnnounce.js

担当者を全体に告知する。

実行例

$ node publicAnnounce.js $(date +"%Y%m%d")

registerExistingMembers.js

部員の情報を登録する。(稼働開始時のみ)

実行例

$ node registerExistingMembers.js $(date +"%Y%m%d")

send2AllMembers.js

部員全員にメッセージを送信する。

実行例

$ node send2AllMembers.js

updateMembers.js

新規部員の登録と凍結された部員の処理を行う。

実行例

$ node updateMembers.js $(date +"%Y%m%d")

updateStatus.js

割り当てが1周したらリセットする。

実行例

$ node updateStatus.js $(date +"%Y%m%d")

⏳ 運用

稼働時に一度だけ実行

  • registerExistingMembers.js
  • send2AllMembers.js

1日1回実行

  • additionalAssignTask.js
  • updateStatus.js
  • assignTask.js
  • publicAnnounce.js
  • updateMembers.js

assignTask.js は、2回実行される

以下のようなシェルスクリプトを用意し、定期実行する。

#!/bin/bash

cd $(dirname $0)

/usr/local/bin/node ./additionalAssignTask.js $1
sleep 1m
/usr/local/bin/node ./updateStatus.js $1
sleep 1m
/usr/local/bin/node ./assignTask.js $1
sleep 1m
/usr/local/bin/node ./assignTask.js $1
sleep 1m
/usr/local/bin/node ./publicAnnounce.js $1
sleep 1m
/usr/local/bin/node ./updateMembers.js $1

🚦 テスト

DBに手動追加した上で運用させる

以下のファイルを1回ずつ順に引数を変えながら実行

  • additionalAssignTask.js
  • updateStatus.js
  • assignTask.js
  • publicAnnounce.js

assignTask.js は、2回実行される

以下のようなシェルスクリプトを用意し、定期実行する。 稼働テストの詳細は、稼働テストのログにある。

#!/bin/bash

cd $(dirname $0)

/usr/local/bin/node ./additionalAssignTask.js $1
sleep 1m
/usr/local/bin/node ./updateStatus.js $1
sleep 1m
/usr/local/bin/node ./assignTask.js $1
sleep 1m
/usr/local/bin/node ./assignTask.js $1
sleep 1m
/usr/local/bin/node ./publicAnnounce.js $1

reikai-kouza's People

Contributors

dependabot[bot] avatar hiromi-mi avatar ryokohbato avatar

Stargazers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.