新規Dojoから申請が来た場合の手順書をまとめています。
coderdojo.jp への掲載申請が来たとき、 まずは申請された Dojo 情報を確認します。
- 掲載依頼の申請内容を確認する
- 総務省の全国地方公共団体コードページに行く
- 最新版の PDF にアクセスし、申請内容と一致する全国地方公共団体コードを確認する
db/dojos.ymlファイルを開き、全国地方公共団体コードの近い値(隣接する Dojo)のデータを見つける- 同じ全国地方公共団体コードがあれば同コードの直後に、初のコードであれば
orderの昇順で適した場所を探す - 下記「データの読み方」を参考に、申請内容から新しい Dojo データを
db/dojos.ymlに追加する - 下記「統計システムへの追加」を参考に、イベント管理サービスを
db/dojo_event_services.ymlに追加する - 上記の作業結果をコミットし、Pull Request (PR) を送る
次のような掲載申請が来たときを例にとって説明します。
Dojo名: CoderDojo 那覇
Dojoタグ: Scratch, Webサイト, Ruby
説明文: 那覇市で毎月開催
ロゴ (任意):
Web: https://coderdojo-naha.doorkeeper.jp/
代表者: *** (個人情報のため非表示)
連絡先: *** (個人情報のため非表示)
受付日: 2019/06/15 9:42:10
Zen: https://zen.coderdojo.com/dojos/jp/okinawa-ken/okinawa-okinawa-prefecture/naha
上記のような申請を受け取ったら db/dojos.yml に次のように追記します。
(order 順に追加すると見やすくてベターです)
- order: '472018'
name: 那覇
counter: 1 # 省略化。連名道場のときに使います (後述)
prefecture_id: 47
logo: "/img/dojos/default.webp" # ロゴがあれば naha.webp として追加
url: https://coderdojo-naha.doorkeeper.jp/
description: 那覇市で毎月開催 # 県名や開催頻度などの用語を適宜統一
tags:
- Scratch
- Webサイト
- Ruby各項目と内容については次の通りです。
| 項目名 | 内容 |
|---|---|
id |
入力しない。 タスク実行時に自動で追加されます (詳細は後述) |
created_at |
入力しない。 タスク実行時に自動で追加されます (詳細は後述) |
order |
全国地方公共団体コード (詳細は後述) |
name |
Dojo名 |
counter |
省略化。連名道場を登録する際に使います |
prefecture_id |
db/seeds.rb の県番号 |
logo |
省略可。public/img/dojos にあるDojoロゴ画像パス |
url |
公式Webサイト (イベント管理ページも可) |
description |
既存のパターンに沿って記載。prefecture_idがあるので都道府県情報は省略。例: xx市で毎月開催 |
tags |
周知したい技術タグを掲載 (最大5つ) |
is_active |
省略可。非アクティブになったらfalseにする |
is_private |
省略可。プライベートならtrueにする |
idは後述するコマンドで自動的に作成・書き出しされるため、省略してください。orderには総務省が定める全国地方公共団体コードの値を入力します。(db/city_code.csv も参照できます。)logoにはロゴ画像へのパスを入力してください。- ロゴ画像が省略されていた場合は
default.webpを入力してください。 - ロゴ画像があれば
.pngと.webpに変換し、TinyPNG で圧縮し、public/img/dojosに2つとも 置いてください。 - ロゴ画像が正方形ではない場合、表示が崩れることがあるため、Macのプレビューで画像に余白を追加し、正方形にしてください。
- ロゴ画像が省略されていた場合は
yaml ファイルに各項目を追記したら次のコマンドを実行し、DB に新規 Dojo 情報を反映させます。
$ bundle exec rails dojos:update_db_by_yamlその後、DB に反映された id や created_at を YAML ファイルに書き出すため、次のコマンドを実行します。
$ bundle exec rails dojos:migrate_adding_id_to_yaml実行後、upsert される ID が現在ある ID 群の中で『最大値+1以上』であることを確認してください。
もし id: 1 や id: 3 という値がupsert されていた場合は、rails console 上で次のコマンドを実行して、PostgreSQLの自動採番のシーケンスをリセットしてください。
ActiveRecord::Base.connection.execute("SELECT setval('dojos_id_seq', coalesce((SELECT MAX(id)+1 FROM dojos), 1), false)")YAML ファイルに id および created_at が追加されたことを確認できたら :new: Add CoderDojo 那覇 in 沖縄県 といったコミットをし、Pull Request を送ります。
Pull Request 例: #274
もしこの時点で「どのイベント管理サービスを使っているか」が分かっていれば、 続けて、後述する統計システムへの追加も行なってください。
coderdojo.jp では開催日、及び参加人数などを集計し、統計ページから公開しています。
統計情報 - CoderDojo Japan https://coderdojo.jp/stats
集計は手作業でなく、イベントページのAPIを利用し自動化して行っています。
このため、新規 Dojo を追加する際は、集計対象にも追加をお願いします。
集計対象は db/dojo_event_services.yml で管理しています。以下のように追記してください。
# 田町@VMware
- dojo_id: 295
name: connpass
group_id: 13115
url: https://coderdojo-tamachi-vmware.connpass.com/| yaml | 内容 |
|---|---|
dojo_id |
該当する Dojo の id |
name |
設定するイベント管理サービスの名前 (connpass, doorkeeper) |
group_id |
イベント管理ページの id |
url |
イベント管理ページの URL |
-
connpassの場合は Connpass API から取得します- connpass のグループまたはイベントページをブラウザで表示します。例: https://coderdojo-tobe.connpass.com/
- URL をコピーします
- 以下のコマンドで上記のコピーした URL を指定すると
group_idが得られます
$ bundle exec bin/c-search https://coderdojo-tobe.connpass.com/ => 5072jqコマンドが使えない場合はインストールしてください。$ brew install jq -
doorkeeperの場合は Doorkeeper API から取得します- Doorkeeper のイベントページをブラウザで表示します。例: https://coderdojo-suita.doorkeeper.jp/events/90704
- URL をコピーします
- 以下のコマンドで上記のコピーした URL を指定すると
group_idが得られます
$ bundle exec bin/d-search https://coderdojo-minamiaizu.doorkeeper.jp/events/193082 98760jqコマンドが使えない場合はインストールしてください。$ brew install jq
dojos.yml, dojo_event_services.yml の更新を GitHub に push すると、次の手順で本番環境に反映されます。
- GitHub の更新を GitHub Actions が検知します
- GitHub Actions で各種テストが実行されます
- 1つ以上のテストが失敗すると本番環境には反映されません
- すべてのテストが成功すると、本番環境へのデプロイが始まります
したがって、Pull Request 時点で CI がパスしていれば、基本的にはマージ後に本番環境 (coderdojo.jp) に反映されます。
