| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Eine recht umfangreiche, zum Teil schon mehrere Jahre alte Rails-Anwendung ist auf den aktuell Rails 2.0 zu portieren |
| Aufgaben | Teile der Anwendung stammten noch aus Rails-1.0-Zeiten, größere Teile waren aber auch auf Rails-1.2.4-Stand. Außerdem enthielt die Anwendung diverse ältere, zum Teil gepatche Plugins. Insesamt etwa 160.000 Zeilen Rails-Code. Durch eine Code-Analyse wurden »die üblichen Verdächtigen« Stellen als erstes bereinigt. Danach wurden Schritt für Schritt unter Rails 2 die Tests in Stand gesetzt. Dabei wurden alle veralteten und gepatchten Plugins auf den aktuellen Stand ohne Patches gebracht oder entfernt. |
| Techniken | Rails 2.0 |
| Zeitraum | 2008-04 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Kunden sollen weitere Abo-Varianten angeboten werden. |
| Aufgaben | Hierfür sind zusätliche Geschäftsprozesse zu implementieren und bestehende anzupassen. |
| Techniken | Rails |
| Zeitraum | 2008-02 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Implementation eine Lösung für ActiveRecord sehr große Tabellen auf mehrere kleine zu partitionieren |
| Aufgaben | Die beim Kunden zu archivierenden Daten haben zum Teil ganz erhebliches Volumen. Um im recovery-Fall möglichst schnell wenigstens zunächst mit den aktuellen Daten wieder online gehen zu können und um alte Daten einfacher auslagern zu können, war ein Lösung zu implementieren, die es ermöglichst, diese Daten auf mehrere Tabellen und mehrere Datenbanken zu verteilen. |
| Techniken | Rails, MySql, Metaprogrammierung |
| Zeitraum | 2008-01–2008-02 |
Zur Erfolgskontrolle möchte das Marketing im Nachgang von Newsletter-Aktionen eigentlich immer wissen, wieviele Leser auf welche Links im Newsletter geklickt haben.
Üblicherweise wird diese Aufgabe mittels spezieller Urls gelöst, die von einem Mail-Link-Klick-Zähl-Controller entgegengenommen werden, dessen Aufgabe einzig darin besteht,
den jeweiligen Klick zu zählen und dann zur eigentliche Seite zu redirecten. Beispiel: Anstelle das beworbene Produkt 4711 mit der Url /product/show/4711 im Newsletter direkt zu verlinken, wird der Mail-Link-Klick-Zähl-Controller mit /maillink/product/4711 verlinkt. Die jeweiligen Requests werden vom Controller gezählt (zum Beispiel durch "Ziehen" eines Google-Analytics-Urchin) und dann zur Url /product/show/4711 weitergeleitet.
Die Marketing-Leute wollen aber auch wissen, aus welchem Newsletter der jeweilige Klick erfolgte. Diese Daten bei jedem Link im Newsletter spezifizieren zu müssen ist recht umständlich. Mit Rails geht das aber auch viel einfacher mittels default_url_options:
class NewsletterMailer < ActionMailer::Base
def monthly_newsletter(customer, subject, ...)
default_url_options = {:newsletter => 'monthly', :date => Date.tody}
subject subject
body :customer => customer,
...
end
end
An alle mit link_to im Template monthly_newsletter.rhtml erzeugten Link werden jetzt die Parameter newsletter mit dem Newsletter-Namen und date mit dem Erzeugungsdatum angehängt.
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Implementation von AJAX-basierten Formularen und zu grunde liegenden Modellen |
| Aufgaben | Unter Weiterverwendung der bestehenden, Legacy-Datenbank wurden die Formulare zur Filmempfehlungen und -rezensionen auf der Verleihplatform mittels AJAX-Techniken erneuert. |
| Techniken | Rails, MySql, Metaprogrammierung |
| Zeitraum | 2007-12 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Implementation eines performanten mass mailer in Rails. Automatische Erzeugung von tiny urls. |
| Aufgaben | Neben der Erzeugung der E-Mails mittels eines sehr einfachen template-Mechanismus stand die implizite Generierung Kundenspezifischer Kurz-Urls im Vordergrund dieses Projektes. |
| Techniken | Rails, MySql, Metaprogrammierung |
| Zeitraum | 2007-11 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Implementation eines SMTP-MTAs in Ruby, der als smart relay fungiert und seine queue in einer relationalen Datenbank hält. |
| Aufgaben | Zur Komplettierung des Kundenbenachrichtigungs-Subsystem des vorhergehenden Projekts werden die E-Mail-Antworten aus dem Ticketsystems des Kundenservice (OTRS) des Kuden integriert. Der SMTP-Server dient dem Ticktesystem als smart host an Stelle eines Sendmail- oder Postfix-MTAs. |
| Techniken | Rails, MySql, Eventmachine, SMTP, Tests |
| Zeitraum | 2007-10 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Rails-Plugin zur Benachrichtigung von Kunden als Spezialisierung des Ruby-on-Rails-ActionMailers |
| Aufgaben | Mitteilungen an Kunden werden via E-Mails transaktionssicher über die Datenbank versendet. Metainformationen und Inhalt werden in der Datenbank protokolliert. Bounce-E-Mails werden eingesammelt und protokolliert. Das Öffnen von Html-E-Mails wird über ein tracking-Pixel verfolgt. |
| Techniken | Rails, MySql, Ajax, Tests |
| Zeitraum | 2007-09 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Die Erneuerung der produktiven AMANGO-Online-DVD-Verleih-Plattform |
| Aufgaben | Unter Weiterverwendung der bestehenden, komplexen Legacy-Datenbank (~400 Tabellen, ~5.000 Kolumnen) wird die PHP-Alt-Anwendung schrittweise durch eine Ruby-on-Rails-Anwendung ersetzt. Entwurf und Implementation der unter anderem folgenden Seiten: Wunschliste, gesehene und bewertete Filme, Liefer-und-DVD-Problem-Dialog-Folge, Filme bewerten und Empfehlungen. Implementation anspruchsvoller Javascript-AJAX-Widget für Filme bewerten und Empfehlungen; |
| Techniken | Rails, MySql, Ajax, distributed Ruby, PHP, Tests |
| Zeitraum | seit 2007-04, weiter andauernd |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Neu-Entwicklung einer anspruchsvollen Web-Anwendung zur Betreuung des Kundenstamms basierend auf der Legacy-Datenbank |
| Aufgaben | Analyse des umfangreichen Legacy-Datenbank Modells; Entwurf und Implementation der Anwendung; Entwurf und Implementation einer domain-specific Language (DSL) für die Abbildung von Geschäftsvorfällen in Ruby; Implementation komplexer Geschäftsvorfälle (Post-Retour, Kündigung, Inkasso-Verfahren u. v. m.) mittels dieser DSL; Implementation einer Web-Service-Schnittstelle für das Logistik-System zu den Geschäftsvorfällen; Integration OTRS auf Datenbank-Ebene; |
| Techniken | Rails, MySql, Web-Services, Ajax, Tests |
| Zeitraum | 2006-10–2007-03 |
| Kunde | AMANGO |
| Auftraggeber | Kunde |
| Beschreibung | Unter dem Projektnamen »E4« war die Studie einer Online-DVD-Verleih-Plattform in Ruby on Rails zu realisieren ausgelegt für (viel) mehr als 100.000 Kunden und 1.000.000 Verleihtransaktionen pro Monat. |
| Aufgaben | Datenbank-Modellierung mittels Rails-Migrations; Analyse des Legacy-Datenbank-Schemas; Datenimport aus dem Legacy-Schema (mit Ruby) sowie Html- und Excel-Dateien; Entwurf und Implementation der Web-Anwendung; Anbindung des Logistik-System via SOAP; |
| Techniken | Rails, MySql, Web-Services (SOAP), Ajax, Tests |
| Zeitraum | 2007-08–2006-09 |
| Kunde | DV-Ratio |
| Auftraggeber | Kunde |
| Beschreibung | Präsentation Ruby on Rails mit live coding |
| Aufgaben | Entwicklung einer Web-Demoanwendung (Todo-Listenverwaltung mit AJAX), live-coding-Präsentation vor Fachpublikum |
| Techniken | Rails, PostgreSql, Linux |
| Zeitraum | 2006-02–2006-04 |
| Kunde | DIPE |
| Auftraggeber | Intern |
| Beschreibung | Testprojekt |
| Aufgaben | Einarbeiten in RoR; Entwickeln der Web-Anwendung unter Verwendung von AJAX-Techniken |
| Techniken | Rails, PostgreSql, Linux |
| Zeitraum | 2005-12–2006-01 |
dipe.de
