勤怠管理システムを作りました。
名はSASAKIsan。敵の名はmiyamoto。
昔いたベンチャー企業でみやもとさんという勤怠管理botを使っていました。Slackから出勤と退勤の時間を打刻できるので非常にありがたく利用しておりました。
そんなみやもとさんですが、SlackとGAS連携が前提なのと時たまバグが発生するのが曲者でした。何奴。
8月にバグが出る件は直っているようですね。
そこで、導入の敷居がもっと下がればと思い開発したのがSASAKIsanです。
サンプルをHerokuサーバーで立ち上げているので、遊んでいただいて構いません。
SASAKIsan on Heroku
※アカウント登録はできないのでご注意を
Adminユーザー
email : kojiro_sasaki@ykonishi.tokyo
pass : foobar
Adminでないユーザー
email : example@railstutorial.org
pass : foobar
技術構成
佐々木さんはRuby on Railsで開発しました。
Railsを個人的に使用したのは初めてなので、チュートリアルをベースに開発しています。
ローカルの仮想環境にはDockerを採用しました。
バージョン
- Ruby 2.7.4
- Rails 6.1.4.1
Herokuでも動作確認済みなので、そのままデプロイしても問題ないと思います。
導入について
GitHubにパブリック公開しているので、自由にご利用ください。
クローンいただいて魔改造しても問題ありません。
環境の立ち上げ方法はREADME.mdに記載しています。Docker環境構築でインストールに時間がかかると思いますが、辛抱ください。
仕様
Ruby on Railsチュートリアルを参考にして開発したので、ベースはチュートリアルに近い仕様になっています。
そのため、アカウント有効化のメール送信や画面デザインなどはチュートリアル通りです。
勤怠管理の部分だけはオリジナルとなっています。
ロール
ロールはadminかadmin以外の2つです。
adminはユーザーと勤怠の削除が可能です。
勤怠の編集は登録したユーザー本人のみが可能となります。
勤怠管理
ログイン後、ホーム画面に行くと本日の勤怠状況が表示されます。
画面左に出勤と書かれたボタンがあると思うのですが、ここを押すと出勤記録が付きます。
出勤ボタンを押すと出勤時刻が記録され、今度は退勤ボタンに切り替わります。
退勤ボタンを押すと退勤時刻が記録されてボタンは押せなくなります。
翌日になると押せるようになります。
プロフィール画面に行くと個々人の勤怠状況が閲覧できます。
Herokuへのデプロイ
基本的にHerokuへのデプロイは公式の手順に従えば、問題なくできるはずです。
postgresqlを利用する場合は、database.ymlをこちらのように変更すると接続ができます。
your_app
のところだけ各自Herokuアプリ名を入れてください。
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: app_development
host: db
username: root
password: password
test:
<<: *default
database: app_test
host: db
username: root
password: password
production:
<<: *default
database: your_app
username: root
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
まだまだ続くよ
CSV出力やみやもとさんのようにチャットツールから出退勤できる機能も検討中です。
1日に複数回出勤・退勤を打刻するパターンもありえるので、ここは近々改修しようと考えています。
↑
2021/11/11 改修しました。
https://github.com/nisyuu/SASAKIsan/commit/557e46fb9dbd2a0c55f0d6dd6930de59b31a7dd0