Skip to content
Snippets Groups Projects
Select Git revision
  • assembly-import
  • chore/conference-singleton
  • develop default protected
  • stable-38c3
  • chore/update-rooms
  • chore/backoffice-list
  • feature/show_vods
  • feature/event_import_slugs_of_serial_event
  • feature/audit_log
  • 720-schedule_source
  • room-docu
  • chore/event-views
  • 607-schedule-versions
  • feature/conference-query-set
  • feat/unit-integration-tests
  • camp23-prod
  • production protected
  • andi/schedule-api
  • feat/dynamic-link-forms
  • andi/speaker_import
  • prod-2025-04-18_22-42 protected
  • prod-2025-01-21_22-46 protected
  • prod-2025-01-21_22-00 protected
  • prod-2025-01-20_00-20 protected
  • prod-2025-01-07_13-15 protected
  • prod-2024-12-31_09-54 protected
  • prod-2024-12-30_12-40 protected
  • prod-2024-12-30_03-16 protected
  • prod-2024-12-29_20-35 protected
  • prod-2024-12-29_03-32 protected
  • prod-2024-12-29_03-20 protected
  • prod-2024-12-29_02-55 protected
  • prod-2024-12-29_02-25 protected
  • prod-2024-12-28_18-32 protected
  • prod-2024-12-28_12-24 protected
  • prod-2024-12-28_02-32 protected
  • prod-2024-12-27_21-15 protected
  • prod-2024-12-27_20-15 protected
  • prod-2024-12-27_16-37 protected
  • prod-2024-12-27_16-01 protected
40 results

hub

  • Clone with SSH
  • Clone with HTTPS
  • Hub/Gateway (und Plain UI Frontend)

    Der Hub besteht aus mehreren Komponenten welche für unterschiedliche Funktionen gedacht sind

    • Backoffice: Erfassung und Verwaltung von Informationen inkl. Bearbeitung von Reports
    • PlainUI: Es handelt sich um eine Darstellung der Konferenz-Inhalte als simples Frontend ohne viel Schnick-Schnack.
    • Core: Beinhaltet die Datenmodelle und Funktionen, die sowohl im Backoffice als auch in der PlainUI verwendet werden.
    • Metanav/Navbar (not published yet): Bietet eine von allen Seiten gemeinsam einbindbare Navigationsleiste im jeweiligen Congress-Design.

    Datenmodell

    Grobes Datenmodell

    als PDF: Grobes Datenmodell und automatisch exportiertes ER-Diagramm (kann Spuren von Unübersichtlichkeit enthalten)

    PlainUi Structure

    • jinja2/plainui
      • components
      • tbd.
    • styles
      • components: components styles, die in hub.scss eingebunden werden
      • utils: settings, die selbst keinen output generieren (z.B. Variablen, Mixins), damit sie in unterschiedlichen files verwendet werden können
      • hub.scss: Hauptdatei, welche anschließend in CSS konvertiert wird
    • static/plainui
      • img: statische Bilder
      • fonts: importierte Schriften
      • das generierte CSS

    REST API

    Grundsätzlich sind alle hier aufgeführten Endpoints per GET abrufbar (Restriktionen bei nicht-öffentlichen Events, etc. sind möglich). Manche Endpunkte sind zusätzlich "schreibbar" und können zur Anlage bzw. Bearbeitung der jeweiligen Daten genutzt werden.

    Testinstanz: https://hub.test.c3voc.de/api/ / https://staging.hub.c3events.de/api/
    Prodinstanz: https://api.events.ccc.de/congress/2024/

    Kategorie Endpunkt GET POST PUT DEL Beschreibung
    Auth /auth/get-token x Ausstellen eines API-Tokens
    Persönlich /me x x eigenes Profil / Settings
    Persönlich /me/badges x Liste aller Badges/Achievements
    Persönlich /me/events x Favorisierte Events
    Persönlich /me/events/<uuid>/ x x Events (ent-)favorisieren
    Persönlich /me/friends x x x Liste der Buddies
    Persönlich /me/received-messages/ x Übersicht empfangener PN
    Persönlich /me/received-messages/<uuid> x Details einer empfangenen PN
    Persönlich /me/send-message x Send a new PN
    Persönlich /me/sent-messages/ x Übersicht gesendeter PN
    Persönlich /me/sent-messages/<uuid> x Details einer gesendeten PN
    Persönlich /me/delete-message/<uuid> x PN löschen
    Konferenz / x Metadaten des Konferenz
    Konferenz /tags x Liste aller Tags auf der Konferenz
    Konferenz /tracks x x Liste der Tracks
    Konferenz /track/<slug>/ x x x Details des Tracks
    Konferenz /assemblies x x Liste der Assemblies
    Konferenz /assembly/<slug>/ x x x Details der Assembly
    Konferenz /assembly/<slug>/events x x Liste der Events der Assembly
    Konferenz /assembly/<slug>/rooms x x Liste der Räume der Assembly
    Konferenz /rooms x Liste aller Räume (über alle Assemblies).
    Konferenz /room/<uuid>/ x Details des Raums
    Konferenz /events x Liste aller Events
    Konferenz /event/<uuid>/ x x x Details des Events als Hub Event JSON
    Konferenz /event/<uuid>/schedule[.json] x x x Details des Events als Schedule JSON
    Konferenz /event/<uuid>/attachments x x Anhänge
    Konferenz /event/<uuid>/attachments/<id>/ x x x Download der zugehörigen Datei
    Konferenz /schedule[.xml|.json] x Liste aller Events als Schedule XML/JSON
    Konferenz /assembly/<slug>/schedule[.xml|.json] x Liste aller Events der Assembly als Schedule XML/JSON
    Konferenz /room/<uuid>/schedule[.xml|.json] x Liste aller Events des Raumes als Schedule XML/JSON

    Per POST werden neue Einträge angelegt, per PUT bestehende verändert. Details zu den einzelnen Endpunkten folgen in Kürze™.

    API-Beispiel mit cURL

    Zuerst einen Token generieren:

    curl https://{API_URL}/api/auth/get-token -H "Content-Type: application/json" -X POST --data '{"username": "{USERNAME}", "password": "{PASSWORD}"}'

    Mit diesem Token können dann Endpunkte aufgerufen werden die eine Authentifizierung erfordern:

    curl https://{API_URL}/api/me -H "Content-Type: application/json" -H "Authorization: Token {API_TOKEN}"

    Development

    see Development.md