diff --git a/README.md b/README.md index 6299f50..c2cccd5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,121 @@ # 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)| +