äžè¬ç€Ÿå£æ³äºº CoderDojo Japan ã®å ¬åŒãµã€ãã§ããããã°ã©ãã³ã°èšèªãRubyããšãRubyã掻çšãããã¬ãŒã ã¯ãŒã¯ãRuby on Railsãã§éçºãããŠããŸããæ¬ããŒãžã§ã¯ããããããŒãžã«æ²èŒãããŠãã Dojo æ å ±ãæŽæ°ããæ¹æ³ããéçºç°å¢ã®ã»ããã¢ããæ¹æ³ãªã©ããŸãšããŠããŸãã
CoderDojo ãç«ã¡äžããæ¿èªãããããCoderDojo Kata ã«ããæ¯æŽããã°ã©ã ããå©çšããããšãã§ããŸããcoderdojo.jp ãžã®æ²èŒæ¹æ³ãèŒã£ãŠããŸãã®ã§ã詳现㯠CoderDojo Kata ãã確èªãã ããã
coderdojo.jp ã®éçºã«ã¯ä»¥äžã®ããããã®æ¹æ³ã§åå ã§ããŸããDojo æ å ±ã®ä¿®æ£ãããã¥ã¡ã³ãã®è¿œå ã»å·çã§ããã°ããã©ãŠã¶ã ãã§åå ã§ããŸãã
- Dojo æ
å ±ãæŽæ°ããå Žå (» 詳现ãèŠã)
- å¿ èŠãªãã®: ãã©ãŠã¶ + GitHub ã¢ã«ãŠã³ã
- CoderDojo Kata ãæŽæ°ããå Žå (» 詳现ãèŠã)
- å¿ èŠãªãã®: ãã©ãŠã¶ + GitHub ã¢ã«ãŠã³ã
- æ°æ©èœã®éçºããã¶ã€ã³ãæ¹åããå Žå (» 詳现ãèŠã)
- å¿ èŠãªãã®: Ruby on Rails + PostgreSQL ãªã©ã®åçš®éçºç°å¢
ã¡ãã£ãšããæ å ±æŽæ°ãæèšä¿®æ£ã§ããã°ãã©ãŠã¶ã ãã§åå ã§ããã®ãç¹åŸŽã§ãããããã®æé ã¯ä»¥äžã®éãã§ã âšððš
Dojo æ å ±ã¯æ¬¡ã®æé ã§ç°¡åã«æŽæ°ã§ããŸãã
- db/dojos.yaml ãéã
- ç»é¢å³ã«ãã â ã¢ã€ã³ã³ (Fork this project and edit this file) ãã¯ãªãã¯ãã
- æ°ã«ãªãç®æãä¿®æ£ããä¿®æ£å 容ã«ã¿ã€ãã«ãšèª¬ææãä»ããPropose file change ãã¯ãªãã¯ãã
- ä¿®æ£å
容ã確èªããåé¡ãªããã° Create pull request ãã¯ãªãã¯ãã
- â¯ïž Dojo ã®ããŽç»åãè¿œå /å€æŽãããå Žå㯠Pull Request ã®ã³ã¡ã³ãæ¬ã«ç»åãæ·»ä»ããŠé ãããšå©ãããŸã ð (察å¿äŸ1 / 察å¿äŸ2 / 察å¿äŸ3)
以äžã§å®äºã§ããææ¡ãããä¿®æ£ã¯ã¡ã³ãããŒã«ãã£ãŠãã§ãã¯ãããåé¡ãªããã°ææ¡ãããå 容ãåæ ãããŸããããåé¡ããã£ãŠãã¡ã³ãããŒåŽã§æ°ä»ããŠä¿®æ£ã§ããã®ã§ããŸãã¯ãæ°è»œã«ææ¡ããŠã¿ãŠãã ãã ð
Note
https://coderdojo.jp/docs ã«ããããã¥ã¡ã³ãã®ç·šéæ¹æ³ãåæ§ã§ããdb/docsãã£ã¬ã¯ããªããã©ãŠã¶ã§éããä¿®æ£ããããã¡ã€ã«ãã¯ãªãã¯ããŠãä¿®æ£å
容ãææ¡ããŠãã ãããåãã£ã¬ã¯ãããŒãžã®å³äžã«ãã Create new file
ãã¿ã³ãã¯ãªãã¯ãããšãæ°ããããã¥ã¡ã³ãã®è¿œèšãææ¡ããããšãã§ããŸãã
Kata æ å ±ããDojo æ å ±ãšåæ§ã®æ¹æ³ã§æŽæ°ã§ããŸãã
- kata.html.erb ãéã
- ç»é¢å³ã«ãã â ã¢ã€ã³ã³ (Fork this project and edit this file) ãã¯ãªãã¯ãã
- æ°ã«ãªãç®æãä¿®æ£ããä¿®æ£å 容ã«ã¿ã€ãã«ãšèª¬ææãä»ããPropose file change ãã¯ãªãã¯ãã
- ä¿®æ£å 容ã確èªããåé¡ãªããã° Create pull request ãã¯ãªãã¯ãã (察å¿äŸ)
以äžã§å®äºã§ããææ¡ãããä¿®æ£ã¯ã¡ã³ãããŒã«ãã£ãŠãã§ãã¯ãããåé¡ãªããã°ææ¡ãããå 容ãåæ ãããŸããããåé¡ããã£ãŠãã¡ã³ãããŒåŽã§æ°ä»ããŠä¿®æ£ã§ããã®ã§ããŸãã¯ãæ°è»œã«ææ¡ããŠã¿ãŠãã ãã ð
æ¬ãµã€ãã§ã¯ä»¥äžã®æè¡ã䜿ãããŠããã®ã§ãããããã®ããŒã«ãã»ããã¢ããããŸãã
ã»ããã¢ããæ¹æ³ã®æ¹æ³ã¯æ¬¡ã®éãã§ãã
- æ¬ãªããžããªã fork åŸãclone ããŸã
- ã¿ãŒããã«ãã
$ bin/setup
ãå®è¡ããŸã $ rails server
ã§ããŒã«ã«ãµãŒããŒãç«ã¡äžããŸã- ãã©ãŠã¶ãã localhost:3000 ã«ã¢ã¯ã»ã¹ããŸã
- coderdojo.jp ãšåæ§ã®ãµã€ãã衚瀺ã§ããã°å®äºã§ã
äžèšã®ä»ãDocker ã䜿ã£ãã»ããã¢ããæ¹æ³ããããŸããDocker ãã€ã³ã¹ããŒã«ããäžèšã®æé ã§ã»ããã¢ããããŠãã ãã ð ðš
Doorkeeperã®ã€ãã³ããååŸããããã«ããã¡ãã§Public API Access TokenãçæããŠããå¿ èŠããããŸãã
- æ¬ãªããžããªã fork åŸãclone ããŸã
.env.sample
ãã³ããŒããŠ.env
ã«ãªããŒã ããŸã.env
ã«ãç°å¢å€æ°DOORKEEPER_API_TOKEN=<çæããPublic API Access Token>
ãè¿œèšããŸã- ã¿ãŒããã«ãã
$ docker-compose up
ãå®è¡ããŸã - ã¿ãŒããã«ãã
$ docker-compose exec rails bin/setup
ãå®è¡ããŸã - ãã©ãŠã¶ãã localhost:3000 ã«ã¢ã¯ã»ã¹ããŸã
- coderdojo.jp ãšåæ§ã®ãµã€ãã衚瀺ã§ããã°å®äºã§ã
coderdojo.jp ã¯çŸåšã次ã®æ§æã§ãã¹ãã»ãããã€ãããŠããŸãã
- CI: GitHub Actions
- Deploy: Heroku + Release Phase
- é¢é£PR: replace travis with github actions and heroku integration
åã³ãããã push ããã床㫠CI ãåããŸããmain
ãã©ã³ãã«æ°ããã³ããããè¿œå ãããCI ã pass ãããšãHeroku åŽã§ãããã€å/ãããã€åŸã®åçš®ã¹ã¯ãªãããå®è¡ãããŸãã
- ãã¹ã(CI): .github/workflows/test.yml
- ãããã€å: Bundle, Asset Precomiple, Heroku Buildpack ãªã©
- ãããã€åŸ: scripts/release.sh, Procfile
GitHub Actions ã« deploy
workflow ãå
¥ããããšãã§ããŸãããã次ã®ïŒã€ã®ç®çããçŸåšã¯åé¢ããŠããŸãã
- CI ãããŒãš Deploy ãããŒã®è²¬åãåé¢ããæ¬çªç°å¢ã®ãã°ã®æ©å¯æ§ãé«ãã
- äŸ: ãããã€é¢é£ã®ãã°ã¯ Heroku Activity Logs ã«éçŽããã誰ã§ãã¢ã¯ã»ã¹ã§ããç¶æ ã«ããªã
- Heroku Release Phase ã䜿ããæ¬çªç°å¢ã®å®å®æ§ãé«ãã
- äŸ: Heroku ãããã€åŸã«å®è¡ããã¹ã¯ãªããã倱æãããšãããããã€èªäœãããŒã«ããã¯ããããã«ããæ¬çªç°å¢ãèœã¡ãå¯èœæ§ãå°ãããã
ææ°ç㯠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
éçºã«é¢ããè³æ㯠/docs ãäžèšãµã€ãã«ãŸãšããŠãããŸã (ææ°é )ãå¿ èŠã«å¿ããŠé©å®ãåç §ãã ããã
- DojoCast ã Jekyll ãã Rails ã«ç§»è¡ããŸãã
- æ°èŠ Dojo ã®è¿œå æ¹æ³ - GitHub
- åã©ãã®ããã®ããã°ã©ãã³ã°éå ŽãCoderDojoãã® Ruby/Rails 掻çšäºäŸ
- CoderDojo ãæ¯ãã Rails CMS ã®æŽ»çšäºäŸ - Speaker Deck
- 2020幎 coderdojo.jp éçºãµãããã
- 2019幎 coderdojo.jp éçºãã€ã©ã€ã
- 2018幎 éçšç®ç·ã§èŠã coderdojo.jp éçº
- CoderDojo Japan ã®åçš®æ©èœãšå®è£ ã«ã€ããŠã2017幎çã - Qiita
- CoderDojo Japan ã®ããã¯ãšã³ããå·æ°ããŸããã2016幎ã
çŸåšæäŸäžã® API äžèŠ§ã§ããå©çšäŸã®ãã API ã¯äºææ§ãæèããŠéçºããããããæ¯èŒç䜿ããããã§ãããã ãäºåãªãç Žå£çãªå€æŽãè¡ãããå¯èœæ§ããããããããããããäºæ¿ããã ãããšå¹žãã§ã ð§
- Podcasts API: https://coderdojo.jp/podcasts.rss
- å©çšäŸ: ð» Apple Podcasts - DojoCast (é¢é£PR: coderdojo.jp#387)
- Dojos API: https://coderdojo.jp/dojos.json
- å©çšäŸ: ð° DojoNews (é¢é£PR: coderdojo.jp#1433)
- Events API: https://coderdojo.jp/events.json
- å©çšäŸ: ðŸ DojoMap (é¢é£PR: map.coderdojo.jp#10)
- å©çšäŸ: ð CoderDojo ã«ã¬ã³ããŒãäœã£ãŠã¿ã (é¢é£PR: coderdojo.jp#1547)
- Stats API: https://coderdojo.jp/stats.json
- å©çšäŸ: â¯ïž DojoCon Japan (é¢é£PR: dojocon.coderdojo.jp#1)
- å©çšäŸ: â¯ïž DecaDojo (é¢é£PR: dojocon.coderdojo.jp#18)
- å©çšäŸ: CoderDojo Japan (é¢é£ã³ããã)
ãªãæ¬ãµã€ãå DB ã®åããŒãã«ããã³ãã®ããŒã¿ïŒäžè¬å ¬ééšåã®ã¿ïŒã¯ã以äžã®ãã¡ã€ã«ããã確èªããã ããŸãã
- DB ããŒãã«:
db/schema.rb
- Dojo ããŒã¿:
db/dojos.yaml
- Event ããŒã¿ (ã®æ
å ±ååŸå
):
db/dojo_event_services.yaml
- ð ïŒã€ã® Dojo ãè€æ°ã®ã€ãã³ã管çãµãŒãã¹ã䜿ãäºäŸããããã
Dojo has_many DojoEventServices
ãšãªã£ãŠããŸãã
- ð ïŒã€ã® Dojo ãè€æ°ã®ã€ãã³ã管çãµãŒãã¹ã䜿ãäºäŸããããã
- 2012: CoderDojo Japan started in Facebook Group
- 2014: coderdojo.jp was launched as 'coderdojo-japan.github.io'
- 2015: coderdojo.jp was migrated to Parse as 'web'
- 2016: Parse shutdown. @yasulab migrated 'coderdojo.jp' from Parse to Ruby on Rails
- Thanks @cognitom for helps in design.
- Thanks @YassLab team for helps in development.
- cf. Contributors - coderdojo-japan/coderdojo.jp - GitHub
- 2016-now: coderdojo.jp is sustainably maintained and developed by YassLab Inc.
- CoderDojo Japan has been incorporated and approved @YassLab team as one of official partners for tons of works.
- From then on, YassLab Inc. maintains and develops coderdojo.jp with official approval from CDJ board members. See #References and contributions ('coderdojo-japan.github.io', 'web', and 'coderdojo.jp') for their continuous efforts on development.
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).