SG Development Bayern/ELSA Event

Aus Piratenwiki
Wechseln zu: Navigation, Suche

Stand

Elsa EVENT ist eine Webapplikation auf Basis von cakePHP, die die Kalenderverwaltung der Piraten Bayern bedient. Die jeweils aktuelle SVN-Preview befindet sich hier. Bugs koennen hier gemeldet werden.

2010-07-15 0.1 svn r25

ELSA umfasst jetzt eine Uebersichtsseite fuer Termine, sowie einen einfachen ical view erzeugt. Ausserdem gibt es eine bisher usergeschuetzte Eingabemaske für die Events und die Nutzer- und Gruppenverwaltung.


Konzept

Vorbemerkung

Dieses Dokument beschreibt Funktion und Aufbau der Anwendung ELSA-Event, der zentralen Terminverwaltung des LV Bayern.

Der LV Bayern und seine nachgeordneten Gliederungen verwalten ihre Termine derzeit in zahllosen Wikiseiten und verschiedenen Google-Kalendern. ELSA-Event soll es ermöglichen, alle Termine von LV, BzVs, KVs und Stammtische sowie einiger anderer relevanten Organen und Gruppen, BV, PPI, Jupis und so weiter, zu verwalten.

Zuständig für die Pflegen der Daten wird das virtuelle Verwaltungsbüro des LVs ELSA sein.

Anmelden soll Termine jeder können, eingetragen werden sie allerdings erst durch die Bestätigung eines ELSA-Mitglieds.

Es ist notwendig, dass die Termine eine oder mehrere Kategorien haben können (Stammtisch, Infostand, Parteitag...) Jeder Termin ist immer einer Einheit (LV, BzV XY, KV XY) zugeordnet. Damit wird es möglich, Termine nach Relevanz für Einheiten zu filtern und zu exportieren.

Es soll vordefinierte Einheiten geben, zu denen dann ein Name, ein Ansprechpartner, eine Mailadresse und eine Wikiseite hinterlegt werden kann. Es kann aber auch ein Terminverantwortlicher frei erfasst werden.

Es muss möglich sein, manuell und automatisiert ICAL-Dateien aus der Datenbank zu exportieren. Diese Dateien werden dann verwendet, um lokale Kalender der Gliederungen aus der zentralen Datenbank zu speisen.

Außerdem ist es notwendig, Termine importieren zu können um Gliederungen auch andere Kalender zu lassen. Ein Beispiel für die Darstellung eines iCAL-Files in WordPress findet sich unter Termine.

Datenbank

Tabelle Termine

  • TerminID
  • Titel
  • Alias
  • Ort
  • Adresse
  • Status
  • Startdatum
  • Startzeit
  • Enddatum
  • Endzeit
  • Ganztägig
  • Kategorien
  • Gliederung
  • Freitextfeld

Tabelle Gliederungen

  • GliederungID
  • Bezeichnung
  • Ansprechpartner
  • E-Mail-Adresse
  • Homepage
  • Telefon
  • Übergeordnete Gliederung

Termin erfassen

Ist der Anwender Mitglied des ELSA-Teams, wird der erfasste Termin sofort freigegeben, andernfalls erhält der Termin ein Flag "ungenehmigt" und wird nicht mit exportiert.

Termine freigeben

Mitglieder des Teams haben die Möglichkeit, sich eine Liste der Termine anzeigen zu lassen, die das Flag "ungenehmigt" besitzen und kann für jeden entscheiden, ob er freigegeben oder verworfen werden soll.

Termine bearbeiten

Es ist möglich, sich eine Liste aller Termine - mit Filtermöglichkeiten nach Gliederungen und Kategorien - anzeigen lassen. Teammitglieder haben zusätzlich die Möglichkeit, einen Termin zu editieren oder zu löschen.

Export

Die Anwendung kann Termine in iCAL-Dateien exportieren. Dabei wird zwischen einem manuellen und einem automatischen Export unterschieden.

Manueller Export

Der Anwender hat die Möglichkeit, in einem Formular festzulegen, welche Termine er exportieren möchte. Dabei kann er festlegen, welche Gliederungen und welche Kategorien exportiert werden sollen sowie einen Zeitraum festlegen. Die resultierende iCAL-Datei wird ihm zum Download angeboten.

Diese Funktion steht jedem Benutzer zur Verfügung.

Automatischer Export

Es können beliebig viele automatische Exporte definiert werden. Diese laufen in einem einstellbaren Zeitintervall immer wieder ab und erzeugen iCAL-Dateien.

Die Definition eines automatischen Exports enthält die gleichen Informationen wie der manuelle Export. Allerdings wird der Zeitraum relativ zum Tagesdatum angegeben. Zusätzlich wird der Pfad und Dateiname des Exportfiles festgelegt.

Diese Dateien kann man dann in verschiedene iCAL-Viewer z.B. in WordPress einbinden.

Gliederungen

Teammitglieder können sich eine Liste der Gliederungen anzeigen lassen. Die Gliederungen können editiert werden und neue hinzugefügt werden.

Eine Liste der derzeit sinnvollen Gliederungen findet sich unter http://piratenpad.de/V87NpuWVZH

Gliederung erfassen

  • Name
  • Ansprechpartner
  • Mail
  •  ?

Offene Punkte

  • wie unterscheiden wir Teammitglieder von anderen Besuchern?
  • Muss sich jeder, der einen Termin anmelden will, per Benutzer-Account anmelden oder ist das übertrieben?

Nice to have

  • Die Anwendung sollte einen Twitter-Account füttern, wenn es neue Termine gibt

Technische Umsetzung

Die Terminverwaltung soll als Webanwendung implementiert werden. Als Sprache kommt PHP zum Einsatz, als Datenbank wird MySQL verwendet. Details bestimmt die SG Dev selbst. Die Anwendung wird auf den Servern der bayrischen IT gehostet. Eine erste Beispielanwendung wurde von Volker mittels Joomla und einer angepassten Komponente realisiert. Diese ist jedoch nicht mehr online zu erreichen.


Projekt "Event" - Hintergrundinfo's / Anforderungen

Vorgeschichte:

Da Stefan (aka Sekor, Stefan K. oder S. Körner) mittlerweile gelangweilt von seinen (durchschnittlich) 8,7 Piraten-Stammtischen/Tag (Deutschlandweit); und ständig auf der Suche nach neuen Abenteuern ist, benötigt ER (und viele andere PIRATEN) ein zentrales Nachschlagewerk um komfortabel und schnell auf einer einzigen Plattform alle Termine (bevorzugt auf LV-Bayern-Ebene) einzusehen....

...so, jetzt wird’s wieder ernst....

Volker (Ich) hat auf die schnelle ein CMS mit Joomla 1.5 angelegt, aufs nötigste abgespeckt und mit einem einfach gehaltenem Piraten-Template versehen. Komponente für Terminverwaltung installiert, abgeändert und angepasst.

Nun hat sich ein kleines Team (mit Hilfe von Sekor) von PHP-Entwicklern unter der SG Developement eingefunden....

Kommunikation:

Um den ganzen Informationsfluss zu kompensieren stehen uns folgende Kommunikationsmittel zur Verfügung, die wir ausschließlich nutzen sollen:

Grundlegendes:

In Zusammenarbeit mit Stefan leg ich mal federführend die benötigten Funktionen und Voraussetzungen für das System fest:

Framework:

Eine erste Diskussion im IRC ergab, dass das System mit PHP (CakePHP) realisiert werden soll. Wünsche, etc. werden noch aufgenommen wenn der Kreis der Entwickler feststeht.

Anforderungen an "Event":

Anmeldung / Zugriff / Verwaltung:

  • Admins (pro BzV 2 Admins, für Freigabe von Terminen, etc....)
  • Registrierung von Namen, Benutzernamen, jeweiliger KV/BzV/LV, evtl. Mitgliedsnummer

Hinterlegte Systemdaten:

  • Datenbank aller KV/BzV/LV/PP Deutschland mit Wik-Seite, Homepage, Verantwortlicher
  • Vorgefertigte Kategorien (Stammtisch, Gründung, Flashmob, Parteitag, Telko) Evtl. empfiehlt es sich angepasste Formulare für die verschiedenen Kategorien anzulegen, da die wichtigen Informationen andere prioritäten haben (Beispiel: Bei Stammtisch is Adresse wichtig, bei Telko jedoch der Stream oder SIP-Channel)

Terminformular / Termin einreichen:

(Dies ist ein Vorschlag was für Daten in Textboxen eingegeben werden müssen/sollen)

  • Veranstalter: Dropdownmenü / Auswahlliste für den KV/BzV/LV (Evtl. Java-Anwendung einerDeutschandkarte)
  • Veranstaltung: Dropdownmenü / Auswahlliste mit den Kategorien z.B. „Stammtisch“
  • Veranstaltungsort: Füllt sich automatisch nach Auswahl des Veranstalters (Daten sind in Veranstalterdatenbank hintergt). Alternative Veranstaltungsorte sollen ebenfalls eingetragen werden können. Die „Deluxe-Version“ kann eine Anbindung oder Verknüpfung zu Google-Maps enthalten (Nettes und nützliches Gimmick für „Auswärtige“).
  • Datum: Auswahlfeld für Datum
  • Anfang / Ende: Auswahlfeld für die Uhrzeiten.
  • Infos: Freies Textfeld für zusätzliche Infos, Themen, Gespräche......


Verfahren bei Einstellung eines Termins:

  • Systemmail an die beiden Admins des jeweilig angegebenen BzV !
  • Freigabe durch eines Admins

Export der Termine:

(Dies ist der schwierigste Teil der Arbeit)

  • Ein Verzeichniss auf dem Server soll iCAL-Dateien enthalten. Diese sollen nach allen Veranstaltern gegliedert sein. Ebenso empfielt sich ein Verzeichniss untergliedert nach den einzelnen Kategorien.
    • Bloede Frage: Wieso sollen die iCal Dateien auf dem Filesystem erzeugt werden und nicht dynamisch beim abruf eines php Skripts? --Rico 'mc' Gloeckner sprichmitmir 17:30, 23. Jun. 2010 (CEST)
    • Bloede Antwort: Mir egal wie das geschieht ! :-)
  • Ein Script für Wiki und Wordpress (hat Stefan schon eingebunden) soll es den einzelnen Web-Admins der Piraten-Seiten und der Wiki-Pfleger erleichtern, bzw. abnehmen die Termine händisch einzutragen. Das Script kann täglich/stündlich auf dem Server nach aktualisierten iCal's schauen.

Revidierung / Löschung / Suche eines Termins:

  • Mail mit Angabe (evtl. ein Ticketformular) eines Grundes an den SU des Systems.
  • Ansicht der Termine im Frontend:
  • Keine Anmeldung erforderlich ! (Transparenz)
  • Terminsuche: Auswahl durch Kategorien, Verband (KV/BzV/LV), Datum........


Aufgabenverteilung:

  • Volker : View / Templates / Grafik ( aus zeitgründen …...)
  • Du ?:
  • Du ?:
  • Du ?: