Projektpraktikum: Ruby on Rails

Lab Course
Readers
Manuel Mayr

Die objekt-orientierte Skriptsprache Ruby und das Web-Framework Ruby on Rails (RoR) haben in den letzten Jahren eine Menge (virtuellen) Staub aufgewirbelt. Auf Basis von Ruby on Rails können moderne datenbank-getstützte Web 2.0-Anwendungen entwickelt werden — und das oft in kürzester Zeit. Twitter, GitHub, Xing und YellowPages sind nur einige Beispiele für Web-Sites, die mittels RoR realisiert wurden. Rails-Applikationen basieren auf dem bekannten Model–View–Controller–Paradigma (MVC).

In diesem Praktikum werdet Ihr Eure eigene Ruby on Rails Applikation bauen. Dazu vermischt Ihr Konzepte aus der Welt der Relationalen Datenbanken und innovative Web 2.0-Technologien. Für ansprechende Visualisierungen findet die Google Maps API Einsatz (deren Möglichkeiten demonstriert bspw. SwissTrains).

Die Applikation Ride Sharing

Wie nützlich würde es doch sein, wenn man jeweils genau auf einer Strassenkarte nachschauen könnte, wo die eigenen Freunde in den nächsten Tagen (oder gar regelmässig) mit ihrem Auto unterwegs sind? Man könnte einfach Bescheid geben, zusteigen und das eigene Auto stehen lassen! Eine derartige web-basierte Applikation zum Ride Sharing werdet ihr im Laufe dieses Praktikums in Zweierteams selber bauen.

Ride Sharing erlaubt seinen Nutzern …

… sich in einer web-basierten Applikation zu registrieren, nach erfolgreichem Login (öffentliche) Profil-Daten zu hinterlegen und weitere Nutzer der Applikation zu suchen,

… Nachrichten zwischen Nutzern zu versenden, um Kontakte für zukünftige gemeinsame Fahrten aufzubauen,

… ein Netzwerk von Freunden unter den Nutzern zu etablieren, wobei Freunde jeweils Zugriff auf die geplanten Fahrten der jeweils anderen bekommen,

… Fahrten auf einer Strassenkarte (Google Maps) zu planen und dann allen Freunden zugänglich zu machen,

… Fahrtwünsche zu formulieren und das System nach potentiellen Fahrern suchen zu lassen, denen man dann einfach mitteilen kann, dass man mitgenommen werden möchte.

Eine Demo-Implementation von Ride Sharing schalten wir euch zu einem späteren Zeitpunkt zur Exploration der Funktionalität der Applikation frei.

Das Praktikum

Die “heisse Phase” des Praktikums, in der ihr den eigentlichen Code der Ride Sharing–Applikation mittels Ruby on Rails baut und regelmässiges Feedback dazu von uns bekommt, liegt im September 2009 (Blockpraktikum). Zuvor (also von heute bis Ende August) befindet sich das Praktikum in der Aufwärmphase, in der jeder Praktikumsteilnehmer mit der folgenden verpflichtenden Aufgabe betraut ist:

Arbeitet das Tutorial Getting Started with Rails komplett durch und bringt Rails sowie die im Tutorial konstruierte Blog-Applikation auf einem System eurer Wahl zum Laufen (dazu ist eine Installation von Ruby, Ruby on Rails und eines RDBMS nötig, s. unten). Wir werden euch zu Beginn der heissen Phase daraufhin testen, ob ihr die Blog-Applikation sowie die Grundzüge von Rails durchgängig verstanden habt. Eine Teilnahme am Praktikum ohne diese Aufwärmphase macht definitiv keinen Sinn. Ein erster, schneller Durchgang durch das Tutorial benötigt ca. einen 1/2 Tag — ein gründlicher Durchgang, in dem ihr Verständinis erlangt und die im Tutorial verlinkten weitergehenden Guides durchschaut, dauert ca. eine Woche. Nehmt euch also entsprechend Zeit!

Resourcen zu Sprache Ruby selbst und vor allem zum Web-Framework Ruby on Rails findet ihr in der folgenden Zusammenstellung:

Ruby on Rails

  • Agile Web Development with Rails (3rd ed.) — Leicht zugängliches, dennoch komplettes Referenzwerk für Ruby on Rails. Der Rails-Vater David Heinemeier Hansson ist unter den Autoren. Auch als günstiges e-book (PDF) verfügbar.

  • Ruby on Rails: Download — Hier finden sich Software und Instruktionen, die eine Installation von Ruby (Version 1.8.6 oder höher) und Ruby on Rails (Version 2.3.x) auf verschiedensten Systemen (MS Windows, Linux, Mac OS X) ermöglichen. Rails speichert Models in einer relationalen Datenbank (RDBMS). Für dieses Praktikum ist das Rails-Default-RDBMS sqlite3 genauso geeignet wie MySQL oder PostgreSQL.

  • Getting Started with Rails — Dieses Tutorial führt alle wichtigen grundlegenden Konzepte von Ruby on Rails ein und muss von jedem der Praktikumsteilnehmer komplett durchgearbeitet und verstanden werden. Innerhalb kürzester Zeit realisiert dieses Tutorial eine (sehr simple) Blog-Applikation auf der Basis von Rails.

  • Ruby on Rails Guides — Das obige Tutorial ist Teil einer ganzen Sammlung von Guides, die alle Details des Web-Frameworks beleuchten. Unter dem Guides Index finden sich die wichtigen Abschnitte Action Controller Overview, Layout and Rendering in Rails und Rails Database Migrations.

  • Rails: 7 Security Typs — Dieses Video von Ryan Bates (14m 53s, Beitrag #178 seines grandiosen Railscasts-Video-Blogs) diskutiert grundlegende Sicherheitsrisiken (SQL- und HTML-Injection, File Uploads, Authorization, etc.) und deren, oft sehr einfache,Behebung/Vermeidung. Pflichtlektüre für jeden Praktikumsteilnehmer!

Ruby

Organisatorisches

  • Teilnehmer: maximal fünf Gruppen (à zwei Personen)
  • Zeitraum: September 2009 (Blockpraktikum)
  • Für die erfolgreiche Teilnahme am Praktikum gibt es 8 LP.