Das Portfolio on Rails
ist die Umsetzung des bestehenden Portfolios des Mediacubes, sowie das von MMT und MMA, in Ruby on Rails. Das jetzige Portfolio wurde in PHP programmiert. Die Idee dieser Umsetzung ist, die Verwaltung, sowie die Erweiterung des Portfolios für die Zukunft zu erleichtern. Ruby on Rails bietet durch das MVC-Prinzip eine gute Struktur die den Überblick auch für Dritte begünstigen
Ich habe mich für dieses Projekt entschieden, da ich mir sicher war das dies einen großen Lernerfolg für mich bedeuten würde. Das ist mein erstes großes Ruby on Rails Projekt.
Das bestehende Portfolio basiert auf einer MySql-Datenbank, diese übernahm ich. Das besondere daran war, dass die Datenbank nicht Rails-kompatibel ist und somit nicht leicht zu implementieren war. Dies bereitete mir einige Probleme. Rails erstellt Tabellen aus den Migrationen, ich habe somit keine Migrationen verwenden können. Da Rails automatiesiert primary-keys vom typ (table-name_id) und diese dann auch so erwartet, musste ich die primary_key, die_foreign_keys sowie den eigenen Tabellennamen manuell setzten. Mit Anweisungen in den Models, wie z.B. set_primary_key :pid
Das Design der Seite wurde vom bisherigen Portfolio übernommen und musste von mir richtig eingebaut werden.
Ich habe alleine gearbeitet und benutze für die User-Stories den Pivotaltracker,, und als Versionsverwaltungssystem Git. Mein Repository ist: ssh://user@repos.mediacube.at/opt/git/portfolioonrails.git/
Technisches
Verwendete Plugins und Gems:1.Plugins
gravatar_image_tag
Da die User-Fotos vom dem Anbieter Gravatar abgerufen werden, benötigte ich dieses Plugin um die User-Fotos dar stellen zu können. Mit gravatar_id('email die bei gravatar verwendet wird') werden die User-Fotos angezeigt.improved_mysql_schema_dumper
Die Datenbank enthält eine Tabelle(person_macht_werk) die nur eine VIEW ist. Damit man diese Tabelle bei den Tests verwenden kann benötigt man diese Plugin. (an dieser Stelle Danke an Michael Raidel für den Hinweiß zu diesem Plugin)paperclip
Paperclip ist ein bekanntes Plugin, welches auch als Gem verfügbar ist, welches den Upload von Dateien erleichtert. Es wird hier im Backend für die Medienanhänge an die Werke verwendet.ssl_requirement
Da das Projekt auch einen https Bereich hat, verwende ich dieses Plugin. Dadurch ist sichergestellt das gewisse Seiten nur auf https verfügbar sind. Mit dem Befehl 'ssl_required :index, :show' den man in einem bestimmten Controller angibt, stellt man klar das die Actions index und show nur unter https laufen.2.Gems
aws-s3
Die Mediendatein des Portfolios werden extern auf einem Amazon S3 Server gespeichert. Dieses Gem stellt eine Verbindung zu dem angegebenen Bucket her und ermöglicht somit in Verbindung mit Paperclip den Upload.