Website openantrag.de
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
OpenAntrag
OpenAntragLib
.gitignore
LICENSE
README.md

README.md

OpenAntrag

Quellcode der Website openantrag.de

Über das Portal OpenAntrag können Bürger über Fraktionen oder Einzelabgeordnete der Piratenpartei ihre Ideen und Wünsche einbringen.

Das Portal ist realisiert für:

Deutschland (openantrag.de. open-antrag.de) Das Projekt wurde mit ASP.NET MVC umgesetzt. Als Datenbank kommt RavenDB zum Einsatz.

Um das Projekt lauffähig zu bekommen sind weitere Komponenten bzw. Dateien notwendig:

RavenDB

Als Backend kommt die NoSQL-Datenbank RavenDB zum Einsatz. Alle Objekte werden automatisch persistiert. Nach Installation von RavenDB und Anlegen einer 'OpenAntrag'-Datenbank ist lediglich die Anlage eines fixen Dokuments notwendig:

ProposalTags-1

{
 "Items": [],
 "CreatedAt": null,
 "CreatedBy": null,
 "Timestamp": 0
}

Dieses Dokument nimmt alle verfügbaren Themen (Schlagworte) auf und verknüpft sie mit den Anträgen (Proposals).

Dateien

web.config

Nicht im Source-Code enthalten ist die web.config des Projekts, da sie in den AppSettings Logins und API-Keys enthält. Muster

Roles.xml / Users.xml

Die Authentifizierung basiert auf den ASP.NET Xml Security Providers. Hierzu werden im Ordner \App_Data diese beiden XML-Dateien benötigt.

representation.xml

Alle verfügbaren Parlamente werden in dieser Datei unter \App_Data angelegt, die folgende Struktur hat:

<?xml version="1.0" encoding="utf-8" ?>
	<representations>
		<item id="999" key="testparlament" status="0" api-key="..."
  			  label="Test" color="#999" 
  			  name="Test-Parlament" name2="Parlament (Test)"
  			  level="4" federal="" map-url=""
  			  group-type="1" group-name="Test"
  			  link=""
  			  phone="" twitter=""
  			  mail="test@mail.de"
  			  info-mail="test@mail.de">
			<representatives>
	       		<item id="1" key="hans-mustermann" name="Hans Mustermann"
	     			  mail="" phone="" twitter=""
	     			  twitter=""
	     			  party="Piratenpartei" />
			</representatives>
	       	<committees>
	     		<item id="" key="" caption="" name="" url=""></item>
	       	</committees>
			<process>
	     		<step id="1" def="eingang" 
	       			  caption="Eingang des Antrags"
	       			  short-caption="Antragseingang">
					<next>
	     		<step id="2" />
	       			</next>
	     		</step>
	     		<step id="2" def="pruefung" 
	       			  caption="Antrag in Prüfung" 
	       			  short-caption="Antrag in Prüfung">
	       			<next>
	     		<step id="3" />
	       			</next>
	     		</step>
				...
	     		<step id="..." def="erledigt" success-story="true" 
					  caption="Antrag erledigt" 
	       			  short-caption="Antrag erledigt">
	       			<next />
	     		</step>
   			</process>
   		</item>
	</representations>
Feld Bedeutung
item.id eindeutige fortlaufende Nummer des Parlaments
item.key eindeutiger Schlüssel für das Parlament
item.label Name der Region (Stadt, Kreis, Land)
item.color individueller Farb-Code
item.name Name des Parlaments
item.name2 Name des Parlaments mit vorangestelltem Namen der Region
item.level Regierungsebene (Schlüssel auf GovernmentalLevels.xml)
item.federal Bundesland (Schlüssel auf FederalStates.xml)
item.map-url Link über http://geojson.io (Daten aus piratenmandate-frontend)
item.group-type Gruppentyp (Schlüssel auf GroupTypes.xml)
item.group-name Gruppenname
item.link Website-Link der Gruppe
item.phone Telefonnummer der Gruppe
item.mail Mail-Adresse der Gruppe
item.info-mail Info-Mail-Adresse der Gruppe (Versand der Benachrichtigungen)
item.representatives.id eindeutige fortlaufende Nummer des Mandatsträgers innerhalb des Parlaments
item.representatives.key eindeutiger Schlüssel für den Mandatsträger innerhalb des Parlaments
item.representatives.name Name des Mandatsträgers
item.representatives.mail Mail-Adresse des Mandatsträgers
item.representatives.phone Telefonnummer des Mandatsträgers
item.representatives.twitter Twitter-Account des Mandatsträgers
item.representatives.party Partei des Mandatsträgers
item.committees.id eindeutige fortlaufende Nummer des Ausschusses innerhalb des Parlaments
item.committees.key eindeutiger Schlüssel für den Ausschuss innerhalb des Parlaments
item.committees.caption Kurzname des Ausschusses
item.committees.name vollständiger Name des Ausschusses
item.committees.url Link zum Ausschuss (Ratssystem)
item.process.step.id eindeutige fortlaufende Nummer des Antragsschritts innerhalb des Parlaments
item.process.step.def Definion des Antragsschritts (Schlüssel auf ProcessStepDefinitions.xml)
item.process.step.caption Kurzname des Antragsschritts (überschreibt den Kurznamen aus der Definition)
item.process.step.short-caption Name des Antragsschritts (überschreibt den Namen aus der Definition)