5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

佐々木さんが勤怠管理をお手伝いするよ

Last updated at Posted at 2021-11-11

勤怠管理システムを作りました。
名は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はユーザーと勤怠の削除が可能です。
勤怠の編集は登録したユーザー本人のみが可能となります。

勤怠管理

ログイン後、ホーム画面に行くと本日の勤怠状況が表示されます。
画面左に出勤と書かれたボタンがあると思うのですが、ここを押すと出勤記録が付きます。

スクリーンショット 2021-11-11 15.17.58.png

出勤ボタンを押すと出勤時刻が記録され、今度は退勤ボタンに切り替わります。
スクリーンショット 2021-11-11 15.18.41.png

退勤ボタンを押すと退勤時刻が記録されてボタンは押せなくなります。
翌日になると押せるようになります。
スクリーンショット 2021-11-11 15.21.53.png

プロフィール画面に行くと個々人の勤怠状況が閲覧できます。

Herokuへのデプロイ

基本的にHerokuへのデプロイは公式の手順に従えば、問題なくできるはずです。

postgresqlを利用する場合は、database.ymlをこちらのように変更すると接続ができます。
your_appのところだけ各自Herokuアプリ名を入れてください。

database.yml
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

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?