Eficode Academy: Ruby on Rails
Hello,
We are glad to announce that HHLinux Club has started collaboration with Eficode Oy, a Finnish Web Development company based in Helsinki, to create a program baptised Eficode Academy.
Eficode Academy sponsored by Eficode Oy, will, for now, contain the following:
• Ruby on Rails Web Development Course part 1, 16.01.2012 – 16.03.2012
• Ruby on Rails Web Development Course part 2, 26.03.2012 – 18.05.2012
• Opportunity to act as sponsor for selected theses based on students’ projects
• Opportunity for trainee positions
• Opportunity for employment/head hunted by Eficode Oy
• Award of a Certificate of Participation by Eficode Oy
• Web development competition, prices awarded by Eficode Oy
You can find more information about Eficode Academy: Ruby on Rails below:
Ruby on Rails Web Development Course part 1, 16.01.2012 – 16.03.2012
Ruby on Rails application development
Course proposal for Haaga-Helia University of Applied Sciences provided by Eficode Ltd.
The Ruby on Rails application development course is divided in two parts: Basics and Intermediate ones and they are arranged in the spring 2012 at Haaga-Helia University of Applied Sciences.
Ruby on Rails application development: Basics
Description
The aim of this course is to teach students the basics of Ruby on Rails. This would serve as a foundation for the Intermediate course offered in the second period. After the completion of the Basics -course, students know how to create a database driven Web application with basic functionalities available on the Internet. The entire application developed within this course is hosted at Github driven by Git version control system.
Course details
When: Spring 2012, 1st period
Dates: 16.01.2012 – 16.03.2012
Time: 16:00 – 19:00
Max number of participants per group: 25
Duration: 8 contact classes, 3 hours each
Assignments:
There will be one team assignment introduced in the middle of the course. In this assignment, the students will have to come up with one feature for the Web application developed within the course. In the last session, there is a demo where the students explain what they did and how the application works.
Books:
Books are not strictly followed and they used only as reference or self-study material .
Agile Web Development with Rails, 4th Edition (Pragmatic Programmers)
Programming Ruby 1.9
Course Teachers:
Professionals from Eficode Oy
Tair Assimov – Group A
Tero Parviainen – Group B
No ECTS credit awarded
Certificate of Participation issued by Eficode Oy at the end of the course
Groups:
Group A (English) – Fridays at 16:00 – 19:00
Group B (English) – Tuesdays at 16:00 – 19:00
Development environment requirements
*
Linux or Mac workstation
The following software packages installed system-wide:
Ruby 1.9.2
RubyGems 1.8
Git 1.7
RVM
SQLite*
Prerequisites
The following courses completed at Haaga-Helia UAS:
ITP1TF001 – Introduction to Web Site Development
ITP1TF011 – Introduction to Programming
ITP1TF012 – Developing a Web Application
or similar knowledge acquired elsewhere.
To participate in the course,
send email to: dexter.ogie-osahon@hhlinuxclub.org
The following prepared by the student:
Register Github account at http://github.com
Course Contents
Session 1: Hello, Rails
In this session students will learn how to setup Ruby on Rails 3.1 environment and related components required to further progress with the course. We will introduce students to Rails framework, as well as the guiding principles and methodologies (DRY, Convention over configuration). Moreover, students will learn basics of Git version control system using Github and deploy a Hello World application to Heroku.
Session 2: Introduction to Ruby. Architecture of Rails Applications
In this session students will learn basics of Ruby necessary to understand the Rails framework. We will learn Ruby syntax, OOP (Object Oriented Programming) design in Ruby, data types, Blocks and Iterators, Control structures, Exceptions and other topics. Students familiar with languages such as Java, JavaScript, PHP, Perl or Python, will find this beautiful language pretty easy to pick up.
Moreover, Rails MVC (Model View Controller) architecture and the general flow of Rails framework internals are introduced. We will examine how to use Rails CLI (Command Line Client) Generator to create our first controller. Students will be familiarized with basic routing, actions, layouts, views and sharing data between Views and Controllers. We will use ERB, which is a default templating language in Rails.
Session 3: Validations and Unit testing
In this session we will start planning a Web application developed throughout this course. Students will create their first Model and learn how to write migrations to reflect Model changes in the SQLite database. Creation of application business logic will be TDD (Test Driven Development), where students first create Unit tests and then write an implementation. In addition, we will learn how to validate Model data and create negative tests.
Session 4: REST and CRUD
In this session we will extend our Web application with RESTful (Representational State Transfer) controller and learn how to interface with the Model created in the previous session. Further on, CRUD (Create, Read, Update, Delete) concept will be studied together with core HTTP methods used in Rails application development: GET, POST, PUT, DELETE. The implementation developed in this session will be supported by Rails functional tests. We will end the session with adding HTML forms, JavaScript/CSS assets, form validations, as well as learn how to use Rails partials.
Session 5: Associations. Active Record Query Interface
In this session we will add more Models to our Web application and learn how Rails associations work and map to the relational database. We will generate a Rails scaffold to speed up implementation and show the relation to CRUD studied in the previous session. Moreover, students will learn how the models interface with each other and their implementation in UI.
We will extend our Web application with Searching functionality by utilizing Rails Active Record Query Interface. Students will learn how to query objects, order results, scopes, joining tables and more. Moreover, we will add a pagination to the search results UI and basic filtering.
Session 6: Asset Pipeline and jQuery
In this session we will learn what is Asset Pipeline and best practices organizing JavaScript and CSS assets in Rails application. We will also dive into JQuery basics to add frontend behaviours to our application. Moreover, we will learn about Rails responders that are very useful for building APIs and exporting data in formats such as XML, JSON, etc.
Session 7: Sending emails and authentication
In this session we will extend the application further by using Rails ActiveMailer to send emails and write our own authentication mechanism. Students will finalize their applications, test and prepare for the demo.
Session 8: Demos
We will end the Ruby on Rails Application Development course by having team assignment demos. Every team will present what has been extended and how. We will then discuss and evaluate every teams’ work by providing improvement suggestions and corrections. The team behind the best feature selected by voting will get a prize from Eficode.
Original document prepared by:
—
Tair Assimov
Lead Architect, SCM
Eficode Oy
Kuortaneenkatu 2
00510 Helsinki
Website: http://www.eficode.com
Edited by:
Dexter Ogie-osahon
President HHLinux Club
dexter.ogie-osahon@hhlinuxclub.org
With Advice and support from:
Jarmo Peltoniemi
Degree Director BITE Unit
Haaga-Helia University of Applied Sciences