# 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: ... |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)|