LiquidAdministration

Aus Piratenwiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einleitung

Das Projekt "Liquid Administration" soll die wichtigsten organisatorischen Abläufe der Piartenpartei, die derzeit auf Papier und elektronisch in ungerichteten Softwaresystemen wie Wiki und Pad abgewickelt werden, in elektronisch unterstützte Workflows überführen. Das System muss verteiltes Arbeiten unterstützen. Verteiltes Arbeiten bedeutet, dass die Teilnehmer einer Sitzung während der Sitzung nicht physisch in einem Raum sitzen. Das bedingt eine Umsetzung der Lösung in elektronischer Form.

Mitglieder

Das System enthält keine eigene Mitgliederverwaltung. Persönliche Daten der Mitglieder werden weiterhin in einem anderen System verwaltet. Dieses System speichert zu einem User lediglich eine eindeutige Nummer, die mit anderen Systemen verbunden werden kann.

Die beste Sicherheit ist dann gewährleistet, wenn Daten erst gar nicht gespeichert werden. Daher speichert auch dieses System nur das notwendigste. Die Anmeldung an diesem System erfolgt mit Hilfe des Admidio. Die Anmeldeinformationen werden an das Admidio geschickt, dort geprüft und bestätigt bzw. abgelehnt. Eine Usersperre im Admidio führt damit automatisch zu einer Sperre in diesem System. Das minimiert den Verwaltungsaufwand, setzt aber ein (sehr einfaches) technisches Interface auf Seite des Admidio voraus.


Mitglied

Mitgliederreferenz auf einen Admidioeintrag.

MEMBERS:

  • ID: (auto)
  • USERNAME: (text) Nickname aus dem Admidio
  • CREATED: (date) Datum, an dem der Eintrag erstellt wurde
  • LOCKED: (date) Sperrdatum, falls der User gesperrt ist
  • RESOLUTION: (long) Verweis auf den Beschluss, der die Sperre begründet

Berechtigungen

Das System verfügt über eine implizite Rechteverwaltung, die sich aus der Organschaft ableitet. Personen erhalten automatisch mit der Zuweisung als Mitglied eines Organes im System alle dem Organ zustehenden Berechtigungen. Die Zuweisung wird protokolliert, damit klar ist, wer wann von wem zum Mitglied eines Organes gemacht wurde. Organmitglieder können Teile ihrer Berechtigungen an einfache Mitglieder vererben und so gezielt Verantwortung weitergeben (z.B. Moderation, Schriftführer). Verliert das Mitglied ihren Organstatus, so verlieren auch die Erben ihre Berechtigungen. Nur ein bestehendes oder ein übergeordnetes Organ kann ein nachfolgendes Organ anlegen.

Das System ist von allen Besuchern (Mitgliedern?) transparent einsehbar. Auf Antrag können Beschlüsse von Organen durch Entscheidung des Organs vor Besuchern verborgen werden. Mitglieder mit aufrechtem Zahlungsstatus sehen in jedem Fall alle Beschlüsse. Die Information dazu kommt aus dem Admidio.

Organe

Das oberste Organ ist auf Bundesebene die BGV und auf Landesebene die LGV. Die Anlage der Bundesgeneralversammlung erfolgt nach den in der Geschäftsordnung festgelegten Abläufen. Die handelnden Organe der BGV legen, nach Beschluss auf der BGV, die Bundesgeschäftsführung und den Bundesvorstand an. Gleiches gilt für die Landesgeschäftsführung und den Landesvorstand.

Das System erkennt die Anforderungen an Organe nach §6 GO weitgehend automatisch. Bestätigen beispielsweise mehrere Mitglieder die Abwesenheit eines Organes für über ein Monat, so erfolgt die Aberkennung der Organmitgliedschaft automatisch. Solche Regeln werden einmal pro Tag automatisch überprüft.


Organtypen

Es gibt verschiedene Arten von Organen. Organtypen sind beispielsweise Bundesvorstand (BV), Landesgeschäftsführung (LGV), Arbeitsgruppe (AG),...

ORGCLASS

  • ID: 2 (auto)
  • ORGDESCR: (text) Bundesgeschäftsführung
  • ORGSHORT: (text) BGF
  • MEMBERS: (int) 5
  • CREATED: (date) 01.01.2014 (Datum ab wann Typ gültig ist)
  • CLOSED: (date) 31.12.2999 (Datum, ab wann Typ ungültig ist)
  • RESOLUTION: (int) Beschluss, der diesen Typ legitimiert hat


Organ

Organe werden für einen bestimmten Zeitraum gewählt. Es muss festgehalten werden, von wann bis wann und von wem sie legitimiert wurden.

ORGOBJECT:

  • ID: (auto)
  • ORGCLASS: (int) z.B. 2
  • VALIDFROM: (date) 01.01.2014
  • VALIDTO: (date) 31.12.2999
  • CREATEDBY: (user_id)
  • RESOLUTION: (int) Beschluss, der dieses Organ legitimiert


Organmitglieder

Organe haben Mitglieder. Diese werden auf Basis einer Entscheidung zugeordnet.

ORGMEMBERS:

  • ID: (auto)
  • ORGOBJECT: 4711 (BGF vom XX bis YY)
  • MEMBER: (user_id)
  • ADDED: (Datum)
  • RESIGNED: (Datum)
  • CREATEDBY: (user_id)
  • STATE: Normal gewählt, als Nachrücker gewählt
  • ACTIVE: Aktiv/inaktiv.
  • APPLICATION: (app_id) Verweis auf die Bewerbung des Mitgliedes
  • RESOLUTION: (long) Bechluss, der dieses Mitglied als Organ legitimiert


Sitzungen

Das System soll die Verwaltung der von den Organen abgehaltenen Sitzungen unterstützen. Sitzungen sind elementarer Teil der Entscheidungsfindung der Organe. Die Geschäftsordnung legt fest, wie Sitzungen abzuhalten sind, damit die dort gefassten Beschlüsse gültig sind. Beschlüsse müssen von den Sitzungsteilnehmern per Abstimmung bestätigt werden.


Sitzung

Organe fällen ihre Entscheidungen in Sitzungen. Sitzungen müssen einberufen werden, dann starten Laufzeiten.

SESSION:

  • ID: 345 (auto)
  • ORGOBJECT: 4711
  • START: (Datum, Uhrzeit)
  • END: (Datum, Uhrzeit)
  • SECRETARY: (user id)
  • MODERATOR: (user_id)
  • REFERENCES: (Freitext für Links, etc.)
  • CREATEDBY:
  • CREATED:


Teilnehmer

Teilnehmer einer Sitzung. Sitzungen erlangen erst dann Beschlussfähigkeit, wenn eine gewisse Menge an Teilnehmern da sind.

ATTENDEE:

  • ID: (auto)
  • SESSION: (long) Sitzung, an der der Teilnehmer teil nimmt
  • MEMBER: (user_id) Mitgliedsnummer des Teilnehmers
  • START: (datetime)
  • END: (datetime)
  • CREATED: (date)

Anträge

Antragsart

Die Antragsart entscheidet, an welches Organ der Antrag adressiert wird. Antragsarten könnten sein:

  • Publikation auf Homepage
  • Publikation Social Media
  • Budget für Projekt
  • Versand von Newsletter


MOTTYP:

  • ID: (auto)
  • ORGOBJECT: (long) Organ, das für den Antragstyp zuständig ist
  • DESCR: (text) Beschreibung der Sache
  • REFERENCES: (text) Freitext für Links, etc.
  • CREATEDBY: (user_id)
  • CREATED: (date)


Antrag

Mitglieder können Anträge an ein Organ stellen, Anträge können Sitzungen zugeordnet sein. Mehrere Anträge zusammen ergeben die Agenda einer Sitzung.

MOTION:

  • ID: (auto)
  • MOTYP: (long) Antragsart
  • SESSION: (long) Referenz zur Sitzung, wo der Antrag behandelt wird (wird vom Organ zugewiesen)
  • ACCEPTED: (bool) Flag, ob das Organ den Antrag angenommen hat
  • TOPIC: (text) Überschrift
  • DESCR: (text) Beschreibung der Sache
  • REFERENCES: (text) Freitext für Links, etc.
  • CREATEDBY: (user_id)
  • CREATED: (date)


Unterstützer

Anträge können von Mitgliedern unterstützt werden; bei manchen Anträgen (Einberufung einer Versammlung) ist die Unterstützung von Mitgliedern notwendig.

SUPPORTER:

  • ID: (auto)
  • MOTION: (long) Antrag, der unterstützt wird
  • MEMBER: (user_id) Mitglied, das den Antrag unterstützt
  • CREATED: (date) Erstellungsdatum
  • WITHDRAW: (date) Datum des zurückziehens
  • DESCR: (text) Begründung, etc.


Protokoll

Organe fassen Beschlüsse, Beschlüsse haben einen Bezug zu einer Sitzung und einem Organ. Ein Bezug zu einem Antrag ist nicht zwingend (oder?).

Beschlüsse

RESOLUTION:

  • ID: (auto)
  • SESSION: (long) Sitzung, in der der Beschluss gefasst wurde
  • MOTION: (long) Verweis auf den Antrag, zu dem der Beschluss gehört
  • TOPIC: (text) Titel des Beschlusses
  • DESCR: (text) Beschlusstext
  • STATEMENT: (text) Begründung
  • COSTS: (numc) Kostenschätzung, falls Kosten durch den Beschluss anfallen
  • CREATED: (date)
  • CREATEDBY: (long) User, der den Beschluss angelegt hat
  • LOCKED: (bool) Beschluss darf nicht mehr geändert werden


Beschlussbestätigungen

Die Beschlussbestätigung erfolgt durch die Mitglieder eines Organes. Organmitglieder bestätigen (mit Passwortabfrage) ihre Zustimmung zu einem Beschluss. Diese Zustimmung wird gespeichert.

APPROVAL:

  • ID: (auto)
  • RESOLUTION: (long) Beschluss, zu der die Bestätigung gehört
  • MEMBER: (long) Mitglied, das den Beschluss bestätigt
  • VOTE: (int) 0=Ja, 1=Nein, 2=Enthalten
  • CREATEDBY: (user_id)
  • CREATED: (date)
  • DEADLINE: (date) Datum, bis zu dem der Beschluss angefochten werden kann


Berufungen

Gegen Entscheidungen kann berufen werden. Die Berufungsmöglichkeiten sind an Fristen gebunden, die in der Konfiguration des Organes hinterlegt werden sollten.

APPEAL:

  • ID: (auto)
  • RESOLUTION: (long) Beschluss, gegen den berufen wird
  • SESSION: (long) Sitzung, gegen die berufen wird
  • STATEMENT: (text) Begründung der Berufung
  • MEMBER: (user_id) Mitglied, das die Berufung angelegt hat
  • CREATED: (date)
  • CANCELLED: (date)
  • CLOSED: (date)


Bewerbungsprozess

Das System unterstützt die Abwicklung des Bewerbungsprozesses für die Bewerbung zu einer Organwahl auf einer Bundes- oder Landesgeneralversammlung. Jedes Mitglied, welches sich zur Wahl stellt, muss sich im System fristgerecht bei der Mitgliederversammlung eintragen. Die Fristigkeiten werden automatisch überwacht. Nach Bewerbungsschluss besteht für alle Bewerber nach wie vor die Möglichkeit, Zusatzinformationen (Textbox) zur Bewerbung zu hinterlegen (idR ein Link, etc.). Änderungen der Zusatzinformationen werden nicht protokolliert.


Bewerbungen

Mitglieder können sich mit diesem Werkzeug für Organwahlen bewerben.

APPLICATIONS:

  • ID: (auto)
  • ORGCLASS: (long) Organtyp, für den die Bewerbung gilt
  • MEMBER: (user_id) User, der die Bewerbung verfasst hat
  • TOPIC: (text) Überschrift
  • TEXT: (text) Bewerbungstext
  • REFERENCES: (text) Links, etc. zu weiterführender Info
  • CREATED: (date) erstellt
  • CANCELLED: (date) zurückgezogen
  • CHANGED: (date) letzte Änderung
  • ACCEPTED: (bool) Flag, ob Bewerbung akzeptiert wurde
  • ORGOBJECT: (long) Organ, das die Bewerbung begutachtet hat


Technische Plattform

Als technische Plattfom wird folgendes System vorgeschlagen:

  • Virtuelle Maschine, Basis Debian
  • Webserver (Nginx, Apache)
  • PHP
  • MySQL

Darauf aufbauend werden folgende Frameworks verwendet, um die Codestruktur und Programmierkonventionen festzulegen:

  • CakePHP als MVC Framework für das Backend
  • Twitter Bootstrap als HTML/CSS Framework für das Frontend
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Pirat*innenpartei
Mitmachen im Wiki
Werkzeuge
Drucken/exportieren