JavaScript HTML CSS Ruby
Latest commit d179c41 Dec 13, 2017 @despo despo Merge pull request #376 from leenacha/patch-1
Clarify HTML entity example
Permalink
Failed to load latest commit information.
_includes/post render stylet markdown on Jekyll Oct 29, 2013
_layouts Update Jekyll version and add Livereload plugin Aug 19, 2017
assets amend to tutorial homepage Feb 8, 2017
coaches Replace $.each with Array.prototype.forEach in JS3 (#339) Feb 23, 2017
command-line/introduction Explain what happens if you 'rm -rf /' Aug 29, 2016
examples Replace $.each with Array.prototype.forEach in JS3 (#339) Feb 23, 2017
general/setup update setup file Oct 1, 2017
html Clarify HTML entity example Dec 13, 2017
javascripts-dev Fix the test for the asynchronous zip generation Sep 24, 2016
javascripts Update the downloader bundle Sep 24, 2016
js Fixed typo in JS tutorial Nov 14, 2017
php/lesson1 Minor improvements to the PHP tutorial 1 May 15, 2016
python Update tutorial.md with a typo fix Nov 1, 2017
ruby removing any mentions of nitrous and replacing it with cloud9 May 2, 2017
stylesheets amend to tutorial homepage Feb 8, 2017
version-control Link fixes: changed HTTP to HTTPS, removed a dead link (#344) Mar 7, 2017
.gitignore Add gulp to concat/minify JS and serve the specs page May 21, 2016
.ruby-version Add ruby version file Nov 30, 2015
CNAME setting up DNS Mar 31, 2014
Gemfile Update Jekyll version and add Livereload plugin Aug 19, 2017
Gemfile.lock Update Jekyll version and add Livereload plugin Aug 19, 2017
README.md Link fixes: changed HTTP to HTTPS, removed a dead link (#344) Mar 7, 2017
_config.yml Update Jekyll version and add Livereload plugin Aug 19, 2017
favicon.ico Linkify codebar.io text on index page, add favicon Nov 16, 2016
gulpfile.js Add the main and the bundle of all files for production May 21, 2016
index.html removing any mentions of nitrous and replacing it with cloud9 May 2, 2017
index.pt.html removing any mentions of nitrous and replacing it with cloud9 May 2, 2017
package.json Add gulp to concat/minify JS and serve the specs page May 21, 2016
params.json Create gh-pages branch via GitHub Oct 23, 2013

README.md

This is the source code for http://tutorials.codebar.io

Getting started

This is a GitHub Pages repo, so you can render the pages with Jekyll. First make sure to install the version of Ruby indicated in .ruby-version, as well as the bundler gem. Then:

  1. bundle install, which will install Jekyll
  2. bundle exec jekyll serve --watch
  3. go to http://localhost:4000

(you could also use your favorite manager, chruby, rbenv, rvm, etc. See intructions for rvm at the end of this README)

If you are just updating or adding new tutorials, follow steps 1 to 3 only.

If you also want to make changes to the structure of the site (i.e. if you want to modify the site's Javascript files) and run the tests, you need to install Node (follow the link for installation instructions). Then:

$ npm install
$ gulp

and go to http://localhost:4000/test/specrunner.html to run the tests. Tests should be green.

Gulp is only used for development, not in production. In your local copy of this repo, it will concatenate and minify the files inside the javascripts-dev folder, as well as watch for changes in that folder. The concatenated and minified JS file will be generated inside the javascripts folder. You can push both folders when you are finished with your changes. GitHub pages will then generate the site in production with whatever is inside the javascripts folder.

Getting in Touch

You can go to the general codebar Slack channel here or the dedicated tutorials channel here. Use it to get in touch and chat to other codebar students/coaches, or if you need help.

If you are not on Slack use this link to get an invite.

Contributing

We encourage you to contribute with your suggestions and corrections. Head to our issues page and open a new issue or help on the existing ones.

General tutorial rule
  1. All tutorials get the students to build something that they are able to show around at the end of the workshop.

  2. All tutorials follow a structure:

    • Objectives - "In this tutorial we are going to look at..."
    • Goals - "By the end of this tutorial you will have..."
    • Then the exercises.
      • Bonus - This is not always required but if you feel there is something that could be added then please include it.
      • Further reading - Again this is not always required but if you feel there was something in the tutorials that could be covered in more depth then please include any good reading materials/videos or extra tutorials.
  3. Repetition is good. A tutorial can contain multiple exercises that ask the students to take similar steps (e.g. for HTTP Requests one exercise introduces GET, another has GET and POST etc).

  4. Explaining and getting the students to focus on one new thing at a time, presenting students with lots of new content and usage examples can be confusing.

  5. Before starting to write a new tutorial please speak with someone from codebar to see whether it is of interest to students.

To add downloadable files to a new or existing tutorial:
  • Add a folder with your exercise files inside the tutorial folder. For example, for Javascript lesson 3:
js/lesson3/
β”œβ”€β”€ assets/
β”œβ”€β”€ files/
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ jquery.js
β”‚   β”œβ”€β”€ script.js
β”‚   └── style.css
└── tutorial.md
  • Add a frontmatter variable files to the tutorial page with a list of the files you added, including folder name:
---
layout: page
title: Introduction to jQuery
files:
  - files/index.html
  - files/jquery.js
  - files/script.js
  - files/style.css
---
  • In the copy of the tutorial, add your link to the files, making it point to just download:
Download the files that you will need to work through the example
[here](download).

And you're done. Commit and push as usual.

RVM

Another way of installing the project depdendencies is via RVM. Follow the quick installation guide and then run:

$ rvm install 2.2.1  # inside `codebar/tutorials` folder
$ rvm gemset use codebar-tutorial --create
$ gem install bundler
$ bundle install
$ jekyll serve  # go to http://127.0.0.1:4000

If you also want to make changes to the JavaScript of the site, you'll need to have Node installed. This can be done with a tool like NVM.

License

codebar Tutorials are released under the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).