| 
				
					
						
							 | 
			7 years ago | |
|---|---|---|
| OpenAntrag | 7 years ago | |
| OpenAntragLib | 7 years ago | |
| .gitignore | 10 years ago | |
| LICENSE | 10 years ago | |
| README.md | 10 years ago | |
		
			
				
				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) |