Skip to content

☯️ CoderDojo Japan (@coderdojo-japan) official website developed by Ruby on Rails with @yasslab team. 💎

License

Notifications You must be signed in to change notification settings

coderdojo-japan/coderdojo.jp

Repository files navigation

カバー画像

☯️️ CoderDojo Japan 公式Webサイトへようこそ!

Build Status

一般社団法人 CoderDojo Japan の公式サイトです。プログラミング言語『Ruby』と、Rubyを活用したフレームワーク『Ruby on Rails』で開発されています。本ページでは、トップページに掲載されている Dojo 情報を更新する方法や、開発環境のセットアップ方法などをまとめています。


🔰 Dojo を掲載するには?

CoderDojo を立ち上げ、承認されたら、CoderDojo Kata にある支援プログラムをご利用することができます。coderdojo.jp への掲載方法も載っていますので、詳細は CoderDojo Kata をご確認ください。

CoderDojo Kata - 支援


🔧 開発に参加するには?

coderdojo.jp の開発には以下のいずれかの方法で参加できます。Dojo 情報の修正やドキュメントの追加・執筆であれば、ブラウザだけで参加できます。

  1. Dojo 情報を更新する場合 (» 詳細を見る)
    • 必要なもの: ブラウザ + GitHub アカウント
  2. CoderDojo Kata を更新する場合 (» 詳細を見る)
    • 必要なもの: ブラウザ + GitHub アカウント
  3. 新機能の開発やデザインを改善する場合 (» 詳細を見る)
    • 必要なもの: Ruby on Rails + PostgreSQL などの各種開発環境

ちょっとした情報更新や文言修正であればブラウザだけで参加できるのが特徴で、それぞれの手順は以下の通りです ✨📝💨


1. Dojo 情報を更新する

Dojo 情報は次の手順で簡単に更新できます。

  1. db/dojos.yaml を開く
  2. 画面右にある ✎ アイコン (Fork this project and edit this file) をクリックする
  3. 気になる箇所を修正し、修正内容にタイトルと説明文を付け、Propose file change をクリックする
  4. 修正内容を確認し、問題なければ Create pull request をクリックする
    • ☯️ Dojo のロゴ画像を追加/変更したい場合は Pull Request のコメント欄に画像を添付して頂けると助かります 😌 (対応例1 / 対応例2 / 対応例3)

以上で完了です。提案された修正はメンテナーによってチェックされ、問題なければ提案された内容が反映されます。もし問題があってもメンテナー側で気付いて修正できるので、まずはお気軽に提案してみてください 😉

Note

https://coderdojo.jp/docs にあるドキュメントの編集方法も同様です。db/docsディレクトリをブラウザで開き、修正したいファイルをクリックして、修正内容を提案してください。同ディレクトページの右上にある Create new file ボタンをクリックすると、新しいドキュメントの追記を提案することもできます。


2. Kata 情報を更新する

Kata 情報も、Dojo 情報と同様の方法で更新できます。

  1. kata.html.erb を開く
  2. 画面右にある ✎ アイコン (Fork this project and edit this file) をクリックする
  3. 気になる箇所を修正し、修正内容にタイトルと説明文を付け、Propose file change をクリックする
  4. 修正内容を確認し、問題なければ Create pull request をクリックする (対応例)

以上で完了です。提案された修正はメンテナーによってチェックされ、問題なければ提案された内容が反映されます。もし問題があってもメンテナー側で気付いて修正できるので、まずはお気軽に提案してみてください 😉


3. 新機能の開発やデザインを改善する

本サイトでは以下の技術が使われているので、それぞれのツールをセットアップします。

セットアップ方法の方法は次の通りです。

  1. 本リポジトリを fork 後、clone します
  2. ターミナルから $ bin/setup を実行します
  3. $ rails server でローカルサーバーを立ち上げます
  4. ブラウザから localhost:3000 にアクセスします
  5. coderdojo.jp と同様のサイトが表示できれば完了です

🚀 CI/Deploy 構成

coderdojo.jp は現在、次の構成でテスト・デプロイされています。

各コミットが push される度に CI が動きます。main ブランチに新しいコミットが追加され、CI が pass すると、Heroku 側でデプロイ前/デプロイ後の各種スクリプトが実行されます。

GitHub Actions に deploy workflow を入れることもできましたが、次の2つの目的から現在は分離しています。

  1. CI フローと Deploy フローの責務を分離し、本番環境のログの機密性を高める
    • 例: デプロイ関連のログは Heroku Activity Logs に集約させ、誰でもアクセスできる状態にしない
  2. Heroku Release Phase を使い、本番環境の安定性を高める
    • 例: Heroku デプロイ後に実行するスクリプトが失敗したとき、デプロイ自体がロールバックするようにし、本番環境が落ちる可能性を小さくする

💎 CI で実行される各種 Ruby スクリプト (Rake タスク)

最新版は scripts/release.sh からご確認いただけます。

# データベースのマイグレーション
bundle exec rails db:migrate

# 開発用データの流し込み(seeding)
bundle exec rails db:seed

# db/dojos.yaml の内容をDBに反映するタスク
bundle exec rails dojos:update_db_by_yaml

# DBの内容を db/dojos.yaml に反映するタスク
bundle exec rails dojos:migrate_adding_id_to_yaml

# 近日開催の道場を更新するタスク
bundle exec rails dojo_event_services:upsert

# ポッドキャスト「DojoCast」のデータを反映するタスク
bundle exec rails podcasts:upsert

4. 他、開発に関する資料

開発に関する資料は /docs や下記サイトにまとめてあります (最新順)。必要に応じて適宜ご参照ください。


🤝 API

現在提供中の API 一覧です。利用例のある API は互換性を意識して開発されるため、比較的使いやすいです。ただし予告なく破壊的な変更が行われる可能性もあるため、あらかじめご了承いただけると幸いです 🚧

なお本サイト内 DB の各テーブルおよびそのデータ(一般公開部分のみ)は、以下のファイルからご確認いただけます。

  • DB テーブル: db/schema.rb
  • Dojo データ: db/dojos.yaml
  • Event データ (の情報取得元): db/dojo_event_services.yaml
    • 📝 1つの Dojo が複数のイベント管理サービスを使う事例もあるため Dojo has_many DojoEventServices となっています。

📜 Development History & Contributors


5. License

This web application is developed with many other brilliant works! 💖 You can check out them and our works with associated licenses from LICENSE.md. 😉

Copyright © 一般社団法人 CoderDojo Japan (@coderdojo-japan).


カバー画像