2021-07-28に更新

みんなで共有できる条件付きグループ分けツール「グループよしなにくん」

みなさん、バケーションといえば、遊びに行ったり開発をしたりするわけですよね!?
数人ならいいですが、人数が多くなると出てくる問題――いい感じの条件でよしなにグループ分けしたい、そう思ったことはありませんか?
そんなときにこれです。

グループよしなにくん

https://groovy-grouping.herokuapp.com/

……すいません、作りたいもの駆動です。
社内の勉強会でグループに分けることがあるのですが、いまひとつササッと決めきれませんでした。

  • 分散させるための条件をつけたい
    • いろいろなチームの人が均等になるようにしたい
    • 1グループに経験がある人ばかり偏らないようにしたい
  • そのときどきで参加しない人もいるので、参加する人が自分でエントリーできるようにしたい

調べたところ、「条件付き」と「データを保存してくれる」を両立したサービスがありませんでした。なので作りました。
最低限の機能を実装することを優先したので、UIは非常にscaffoldです。あとで整えたいです。

使い方

トップページからチームを作成
image.png

ユーザーを追加
image.png

チーム名と同名のイベントが作成されているので、イベントページへGo
image.png

条件を追加
image.png

参加者を追加
image.png

条件・参加者を入力したら、「グループ分けする」をクリック

よしなにグループ分けしてくれます
image.png

ある程度データが入っているので、こちらから自由に遊んでください。
https://groovy-grouping.herokuapp.com/teams/jZz9cN6QKi5Q/edit

技術

  • Ruby 3.0.2
  • Rails 6.1.4
  • heroku
    • JawsDB

最初はfirebaseを使おうかなと思っていたのですが、考えている間にテーブル構造がどんどん複雑になっていき、RDB以外で考えられなくなりました。そして、思いの外時間がかかりそうだったので、使い慣れたRailsで実装することにしました。
なので、技術的に目新しいことはないです。
MySQLの民なのでDBはJawsDBです。herokuは1時間でデプロイできるからまじで強い。

感想

グループ分けの部分がアルゴリズムな感じで、あまり経験がないので難しかったです。現状かなりゴリ押している気がします。
とはいえ、一応機能としては使えるものになっているのではないかと思います。多分。

現状はいろいろと使い勝手が悪いので、もう使いやすくしたいです。
ロジックを作るとフロントを実装するのが面倒になってしまうんですけど……。


END

小学校の先生(岡山)→旅館の仲居(山梨)→プログラマになるべく勉強中(東京) #RUNTEQ 1月生

コメント