Coder Social home page Coder Social logo

elisa-connector's Introduction

elisa-connector

Der Elisa-Connector bietet eine Schnittstelle, um Anschffungswünsche direkt in das ELi:SA-System des Hochschulbibiothekszentrums abzulegen. Daten können dabei an drei Endpunkte gesendet werden. Über die Einbindung in die Lib:Intel-Plattform lassen sich die Zugriffsrechte steuern und eine Bestellmöglichkeit in verschiedene Dienste integrieren.

Die Konfiguration erfolgt über einen abgesichert Spring Cloud Config-Server, dessen Zugangsdaten als Umgebungsvariabelen

export LIBINTEL_CONFIG_USERNAME="<username>"
export LIBINTEL_CONFIG_PASSWORD="<password>"

festgelegt werden. In dem Config-Server müssen folgende Einstellungen hinterlegt werden:

libintel:
  elisa:
    callerid=<elisa caller id (vom hbz)>
    secret=<elisa secret (vom hbz)>
    userid
      :default=<elisa userid wenn kein Fach ausgewählt wurde>
  eavs:
    email:
      default=<Standard-E-Mail, wenn der Eintrag in Elisa keinen Erfolg hatte>
      from=<Die Adresse, die als Absender der E-Mails erscheint>
  ebooks:
    email:
      default=<Die Adresse, an die E-Book-Anschaffungswünsche gesendet werden sollen>

Für das Versenden der E-Mails ist die Konfiguration eines Mail-Services nötig:

sprving:
  mail:
    host: <mailout server>
    port: <mailout port
    username: <username>
    password: <password>
    defaultEncoding: UTF-8
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true

Soll der Service über Spring Security abgesichert werden, so müssen für diesen Service weiterhin ein Nutzer definiert werden:

spring:
  security:
    user:
      name: <Kennung des Dienstes>
      password: <Password des Dienstes> 

Ist ein entsprechender Keystore vorhanden, können diese Properties auch verschlüsselt abgelegt werden.

Der Elisa-Connector benötigt weiterhin einen Eureka-Server als Discovery-Service und einen Settings-Server, der die Zuordnung der userIDs zu den Fächer enthält.

Die Anschaffungsvorschläge werden als JSON-Payload per POST an folgende Endpunkte gesendet:

  • /receiveEavLecturer : Für einen elektronischen Anschaffungsvorsschlag eines Lehrenden (frei)
  • /receiveEavUser : Für einen Anschaffungsvorschlag eines Studierenden/Externen (frei)
  • /receiveEav : Für einen allgemeine Anschaffungsvorschlag (frei)
  • /sendToElisa : Direktempfang ELi:SA konformer Daten aus einem anderen System (Anmeldung erforderlich)

Das JSON-Format sieht dabei eine flache Struktur der Daten (mit Datentyp) vor. In allen Fälölen werden folgende Eigenschaften benötigt:

{
  "isbn": <ISBN, string>,
  "title": <Buchtitel, string>,
  "contributor": <Autor/Herausgeber, string>,
  "edition": <Auflage, string>,
  "publisher": <Verlag, string>,
  "year": <Jahr, string>,
  "price": <Preis, string>,
  "subjectarea": <Fächer-Code, string>,
  "comment": <Kommentar, string>,
  "name": <Name des Vorschlagenden, string>,
  "libraryaccountNumber": <Bibliotheksaccountnummer des Vorschlagenden, string>,
  "emailAddress": <E-Mail-Adresse des Vorschlagenden, string>,
  "ebookDesired": <E-Book-Wunsch, boolean>
}    

Für Anschaffungsvorschläge von Lehrenden kommen noch folgende Felder hinzu:

{
  "directToStock":<Keine Vormerkung gewünscht, boolean>,
  "personalAccount": <Vormerkung für den persönlichen Ausweis, boolean>,
  "happAccount": <Vormerkung für den Handapparat, boolean>,
  "semAppAccount": <Vormerkung für einen Semesterapparat, boolean>,
  "semAppNumber": <Semesterapparatsnummer, string>,
  "source": <Quelle der Literaturangabe>
}    

und für Studierende/Externe:

{
  "response": <Benachrichtigungswunsch über Kaufentscheidung, boolean>,
  "essen": <Anschaffung für Essen>,
  "duisburg": <Anschaffung für Duisburg>,
  "requestPlace": <Ort für die Vormerkung, string>,
  "source": <Quelle der Literaturangabe>
}    

elisa-connector's People

Contributors

etspielberg avatar

Watchers

 avatar  avatar

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.