Giter Site home page Giter Site logo

xml_coding_da_vinci's Introduction

xml_Coding_Da_Vinci

Repository zum studentischen XML-Projekt im Rahmen des Wettbewerbs "Coding Da Vinci".

##Project Idea Unsere Projektidee ist ein interaktives Bilderquiz, bei dem ein Gemälde und eine Frage sowie vier Antworten dazu angezeigt werden. Die Frage bezieht sich zum Beispiel auf den Künstler, die Epoche, die eingesetzte Technik oder ein ähnliches Thema, das zu dem jeweiligen Gemälde gestellt werden kann. Bei der Auswahl einer Antwort werden anschließend alle falschen Antwortmöglichkeiten rot und die richtige grün eingefärbt. Außerdem werden weitere Zusatzinformationen über den Künstler angezeigt. Die nächste Frage kann beantwortet werden, wenn man auf den entsprechenden Button klickt.

##How run the quiz locally ###Install Requirements Damit das Projekt Lokal auf dem Rechner ausgeführt werden kann, benötigt das System eine installierte Ruby-Version. Mit jeder installierten Ruby-Version wird Rubygems mit installiert, welches das Installieren von externen Bibliotheken ermöglicht, wie z.B. das Rails Framework, welches für dieses Projekt verwendet wurde. Das Projekt wurde mit der Ruby-Version 2.2.2 entwickelt.

####Install Ruby Auf einigen Systemem, wie z.B. OSX, ist Ruby standardmäßig installiert. Um Ruby zu installieren, benötigen wir den Ruby Versions Manager (RVM). Dieser lässt sich mit dem folgendem Befehl installieren:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable

Damit RVM problemlos funktioniert, benötigt es die shell als Login-Shell. Mit dieser Einstellung kann mit folgendem Befehl Ruby mit der Version 2.2.2 installiert werden.

rvm install 2.2.2

####Install Rails (via RubyGems) Nach der Installation von Ruby kann mit folgendem Befehl das Rails Framework installiert werden:

gem install rails

####Install Dependencies Damit das Projekt ausführbar ist, benötigt es alle Abhängigkeiten, die im Gemfile definiert sind. Diese können manuell oder automatisch geladen werden. Um die Abhängigkeiten automatisch zu laden, benutzen wir Bundler, was das Maven (Java) für Ruby ist.

Rails ist ebenfalls eine externe Abhängigkeit und kann auf dem selben Weg installiert werden.

Um die Abhängigkeiten zu installieren, muss einfach in das Projekt navigiert werden und folgender Befehl ausgeführt werden.

cd <projekt-ordner>
bundle install

Gegebenenfalls muss Bundler erst installiert werden:

gem install bundler

####Run Project Nachdem Ruby mit allen Abhängigkeiten installiert worden ist, kann mit dem integrierten Webserver von Rails das Projekt gestartet werden.

bundle exec rails server

Standardmäßig startet der Server auf Localhost mit dem Port 3000. Sollte dieser Port schon vergeben sein, kann ein beliebiger Port mit dem -p Parameter gesetzt werden:

bundle exec rails server -p <port>

###Rest Api Die Rest Api des Projektes hört auf folgende Schnittstellen: /member, member.xml und /quiz. Die URL auf localhost mit dem port 3000 sieht wie folgt aus:

localhost:3000/quiz

####Member /member zeigt eine Tabelle der Teilnehmer an diesem Projekt an. Diese Tabelle wurde mit XSLT generiert. Eine XML-Datei aus allen Teilnehmern dient als Quelle. Diese Informationen können mit /member.xml im Browser angezeigt werden.

####Quiz /quiz zeigt ein simples Quiz an, welches aus XMl-Dateien von OpenData besteht. Diese XML-Dateien wurden als zip heruntergeladen und in dem Projekt als Datenquelle abgelegt. Aus den XMLs werden folgenden Informationen mit Xpath herausextrahiert:

INFORMATION = {
  flickr_link: '//lido:linkResource',
  fotograph: '//lido:legalBodyName//lido:appellationValue',
  actor_name: '//lido:nameActorSet//lido:appellationValue',
  actor_role: '//lido:roleActor//lido:term',
  nationality: '//lido:nationalityActor//lido:term',
  material: '//lido:termMaterialsTech//lido:term',
  title: '//lido:titleSet//lido:appellationValue',
  date: '//lido:eventDate//lido:displayDate'
}

Ein Objekt mit herausgefilterten Information sieht wie folgt aus:

{
  :flickr_link=>"https://flic.kr/p/rMBqoF",
  :fotograph=>"Berlinische Galerie - Landesmuseum für Moderne Kunst, Fotografie und Architektur (Berlin)",
  :actor_name=>"Walter Leistikow",
  :actor_role=>"Maler",
  :nationality=>"Deutschland",
  :material=>"Öl auf Holz",
  :title=>"Warnemünde", :date=>"1886"
}

#####QuizBuilder Mit diesen Objekten wurde mit dem QuizBuilder ein Fragebogen zusammengestellt, der im Rahmen der Veranstaltung nach dem Namen des Autors fragt. Der Fragebogen bietet 4 Antwortmöglichkeiten. Der Nutzer kann eine Antwort auswählen und anklicken. Nach dem Klicken färben sich die falschen Antworten rot und die richtige Antwort grün.

###Verwendete Technologien

xml_coding_da_vinci's People

Contributors

chbier avatar flyingcrafter avatar lherich avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

xml_coding_da_vinci's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.