Fork me on GitHub
Learn more at the sources:

About this Book

This is a textbook for the second year of a computer science or "media informatics" degree program. It builds on Web Development (in german) and runs parallel to Web Engineering.

This book is not a self-contained work: There are great resources for learning about backend development with rails and node - this book tries to use these resources, and bind them together into a coherent study plan.

It was written and published by Brigitte Jellinek in the hope that it will be useful to lecturers and students in educational institutions as well as to self-directed learners on the internet.

On Backend Development

In this course we will learn backend development with Ruby on Rails and with node.js

There are many frameworks in different languages that could also be used. If you have learned Laravel or Django or any number of other frameworks you did nothing wrong.

We decided on Ruby on Rails in 2008 because the framework seemed well rounded and modern then, and have not been disappointed. Rails has not stopped innovating and improving. We can wholeheartetly recommend it both for learning and for building production ready software with it.

In 2013 we added node.js to cover different aspects of backend development.

Ruby on Rails

Ruby Commandline

The essential ruby you need to know to understand rails

Database and Models

How does Rails use the database? How are models and database tables related?

Routing, View and Controller

How Rails gets from a HTTP Request to a finishd HTML document

Authentication

How do we implement "logging in" over statless HTTP? Sessions in rails. Logging in with Passwords or with another service like github, twitter, facebook (using devise and omniauth)

Asset Pipeline

How CSS, Javascript, Images are prepared for publishing

Javascript and AJAX

Rails style remote forms and links

Getting started with Testing

Write your first unit tests and integration tests for Rails

Ruby Gems for your Rails Project

How bundler helps with dependencies, and some gems you might need for your first Rails project

Websocket in Rails

Websockets offer a permanent connection between client and server. With Actioncable you can use websockets for publish-subscribe communication

Refactoring Rails

How to improve your code in a systematic way.

Overarching Concerns

Security

How a backend framework helps with web security

Caching

Speed up your web app through caching

Advanced Testing

More testing with test doubles and a headless browser

Internationalization (I18n)

How to prepare you app for many languages, many countries

Nodes.js

Node vs. Rails

What are the differences, and why should I learn both?

Node Basics

Program your first web server in node