---
# System prepended metadata

title: '![](https://i.imgur.com/u6FcXu7.png)Discription　Kreis勤怠申請システム'

---

# ![](https://i.imgur.com/u6FcXu7.png)Discription　Kreis勤怠申請システム

---

## 概要

* 勤怠申請システムは、２つの機能て実装されます
  
  1. WorkApplication
   SlackのSlashコマンドを利用した勤怠系申請を行うシステム。申請→決裁までの回付をSlackのメンションを利用してDB登録までを行うシステム。
  2. 給与計算用集計バッチシステム
   WorkApplicationで入力されたトランザクションデータより、給与計算に必要な項目の集計を行うBATCHシステム。（日時バッチの仮締処理、月次で行う本締処理に分かれる）

![](https://i.imgur.com/UrSFKB9.png)

## アーキテクチャ

* ①のWork Applicationシステムは、AWSのLambdaを利用したサーバレスプログラム実行環境にて実装します。Lambda関数のトリガーはSlackのSlashコマンドを利用しアプリケーションを提供します。

  1. Slackからの申請フォームは、各申請種類毎にslashコマンドトリガーよりLambda関数を呼び出し実行します。呼び出されたLambda内の関数をPyhotnのFlaskにて実装します。

  2. 各申請種類の機能は３つの関数に分けて作成を行います。
        1.    ①表示　Slashコマンドの種類毎に、modalのフォームを表示する。
        2.    ②申請　表示Formに入力を行い申請ボタンを押下。担当マネージャーへ登録内容のFormを表示させる。
        3.    ③決裁　②でメンションされたForm上の決裁ボタンを押下（差戻しもできるようにする）。決裁イベントのLambda関数にて勤怠トランザクションテーブルへ内容を登録。決裁された旨を申請者へ表示する（Responseを返す。）

![](https://i.imgur.com/9X1Khmm.png)


## プロジェクト参画する際のスキル及び準備

* GitHubのユーザ登録　https://github.com/kreis-inc　
  GithubのOrganizations Kreis-inc チーム用リポジトリで管理を行います。各自Githubのユーザ登録をし近藤まで連携。orgnizationへの登録を行います。GitRepogitory の運用ルールは別途。
* Pyhotn3.8の実装環境の用意
  各自用意。ちなみに近藤はVscodeを使っています。
* Slack APIの利用
  chat.postMessageを使い、Slackへの送信を行います。
* Pyhon Chaliceで serverless python web serviceとして実装。
* DBはAWS Aurora mysqlを利用。

※Chaliceとは
AWS用のpythonサーバレスマイクロフレームワーク。（AWSが開発している）
Chaliceを利用するとAWS API Gateway、AWS LambdaのWebApiの開発が楽になる？デメリットはAWS以外のサーバレスサービスへ意向は無理。
ちなみに、現在はFlaskとZappaの組み合わせが流行りだが、Zappaを使う学習コストを考えた場合、Chaliceのほうがよいと判断。

