Um beim Entwickeln der App mitzumachen, empfiehlt es sich zuerst mal den Stand bei den Milestones, Projects und das Board mit den Issues anzusehen. Mit den Milestones koordinieren wir die großen Projekt-Phasen, und ist ein guter erster Startpunkt zum Verstehen des Entwicklungs-Standes. Mit den Projekten werden die Aufgabenbereiche unterteilt und das Board ermöglicht ein einfaches verwalten der Issues und ist somit die zentrale Übersicht für die Tasks.
Lies zuerst den Absatz davor (Unser Workflow). Dann forke dieses Repo und clone es auf deinen Rechner um die App lokal zum Laufen bringen (siehe Install). Dann such dir am besten ein Issue aus dem Board und versuch es zu lösen. Wenn du Fragen hast, kannst du dich jederzeit via Email ([email protected]) oder unter Kontakt melden. Nachdem du das Issue erledigt hast, musst du die Änderungen mittels Pull Request an dieses GitHub Repository hochladen.
Eine Person vom Team (vermutlich Stefan oder Christopher), werden dann den Pull Request reviewen. Wenn es Probleme gibt, werden wir dies im Pull Request kommentieren, wenn nicht werden wir mergen.
Ersten Schritte
- Dieses Repository durchgehen.
- Doku in API Wiki durchgehen.
- Aufgabenbereiche in Projects ansehen.
- Task-Management via Board ansehen.
src/
offenewahlen_api/
: Hauptordner der Django-App.austria/
: Name des Django-Projektes. Wurde von uns einfach so gewählt.management/commands/
: enthält die Python-Scripts, welche man mittelspython src/manage.py
aufrufen kann.static/
: enthält die gesammelten Files des Projektes inklusive CSS, JavaScript und Bildern.templates/
: HTML templates mit Unterordnern für die Projekte.tests/
: Test-Scripts.
static/
: die gesammelten Files aus allen Projekten (in unserem Fall ja nur ein Projekt). Wird von Python automatisch erstellt.migrations/
: Ordner und Inhalt werden bei einer Datenbank-Migrationen automatisch erstellt.
data/
: enthält die Daten von uns.setup/
: alle Daten, die für das Setup der App notwendig sind.test/
: alle Daten, die für die Tests notwendig sind.
venv/
: ist der Ordner für das Virtual Environment. Wird zu Beginn erstellt, siehe Install.
Datenbank migrieren
Damit die Datenbank-Variablen lokal vom Environment richtig an Python übergeben werden.
python src/manage.py makemigrations austria
python src/manage.py makemigrations
python src/manage.py migrate
Documentation
cd docs/ sphinx-quickstart
Datenbank migrieren
Wenn Änderungen am Datenmodell, also an den Klassen in models.py, vorgenommen werden, müssen diese in die Datenbank migriert werden.
python src/manage.py makemigrations austria
python src/manage.py makemigrations
python src/manage.py migrate
Tests
pytest --doctest-modules src/austria/tests/
Coverage
coverage run --source=. src/manage.py test austria --noinput --settings=offenewahlen_api.setting
coverage report -m
coverage html
cd docs/
sphinx-build -b html source build
sphinx-apidoc -f -o source ..
make html
python setup.py sdist