From 4759a44d555b30f6e2f579bfedd7e26bb73bb937 Mon Sep 17 00:00:00 2001 From: Jan Bertram Date: Thu, 1 Feb 2024 17:10:07 +0100 Subject: [PATCH] Anforderungen und Hinweise zur Umsetzung --- Anforderungen.md | 55 +++++++++++++++++++++++++ How_to_set_up_an_Open_Source_Project.md | 28 +++++++++++++ Vorschlaege_fuer_Projekte.md | 12 ++++++ 3 files changed, 95 insertions(+) create mode 100644 Anforderungen.md create mode 100644 How_to_set_up_an_Open_Source_Project.md create mode 100644 Vorschlaege_fuer_Projekte.md diff --git a/Anforderungen.md b/Anforderungen.md new file mode 100644 index 0000000..53f1cc0 --- /dev/null +++ b/Anforderungen.md @@ -0,0 +1,55 @@ +# Portfolio + +## Recherche: Arbeit am Wiki »Informatikberufe und -ausbildung / OpenSource-Projekte« + +Schreibe _mindestens einen_ Eintrag in das Kurswiki, und ergänze bei Bedarf einen bestehenden Eintrag. Notiere in deinem Portfolio, bei welchen Wiki-Einträgen du beigetragen hast. + +## Starte ein eigenes OpenSource-Projekt + +Setze eine eigene Idee um, orientiere dich an den [Vorschlägen](Vorschlaegen_fuer_Projekte.md), oder tue dich mit anderen zusammen, um Euer bisheriges Projekt als OpenSource-Projekt fortzuführen. + +Du kannst deinem Projekt eine eigene Form geben, oder dich an [diesen Vorschlägen](./How_to_set_up_an_Open_Source_Project.md) orientieren. + +## Helfe bei einem fremden Projekt + +Leiste bei mindestens einem anderen Projekt einen Beitrag. + +## Leiste bei einem größerem Projekt einen Beitrag (optional) + +(Der Beitrag zu einem Projekt außerhalb des P-Seminars kann den geforderten Projektbeitrag zu einem fremden Projekt ersetzen.) + +# Wiki + +## Welche Berufe und beruflichen Werdegänge gibt es? + +Stelle einen Beruf (Position/Tätigkeitsbereich) oder den beruflichen Werdegang einer Person vor. In den verlinkten Podcast-Folgen findest du ausreichend Informationen für eine Vorstellung. + +Zum Beispiel: + +- Game Designerin Linda Breitlauch [dlf-Podcast](https://www.deutschlandfunkkultur.de/linda-breitlauch-akademische-karriere-durchgespielt-dlf-kultur-0cef1b77-100.html) +- Staffel 3 des [Female-Techtalk-Podcasts](https://www.female-techtalk.com/) stellt verschiedene Informatikerinnen vor. +- Melanie Patrick als Quereinsteigerin wird im [Engineering Kiosk](https://engineeringkiosk.dev/podcast/episode/102-quereinstieg-in-die-software-entwicklung-mit-melanie-patrick/) vorgestellt. +- Freelancing wird in einer Episode des [Engineering Kiosk](https://engineeringkiosk.dev/podcast/episode/94-die-realit%C3%A4t-des-freelancings-zwischen-selbstbestimmung-und-unsicherheit-mit-index-out-of-bounds/) besprochen + +Wenn Englisch keine Hürde ist, kannst du auch hier fündig werden: +- [CoRecursive](https://corecursive.com/) +- [Programming Throwdown](https://www.programmingthrowdown.com/) + +## Studium und Ausbildung + +Stelle einen Informatikbezogenen Studiengang oder eine Ausbildung vor. + +## Welche Lizenzen kommen für OpenSource-Projekte in Frage? + +- MIT +- GNU GPLv3 +- Lässt sich auch ohne Lizenz OpenSource-Software entwickeln? + +Interessante Resource: https://choosealicense.com/ + +## Stelle ein OpenSource-Projekt »aus freier Wildbahn« vor + +- Beschreibe kurz das Projekt, und wo es eingesetzt wird. +- »Vertriebswege« (Wie lässt sich die Software nutzen oder installieren) +- Link zur Homepage +- Mitwirkungsmöglichkeiten \ No newline at end of file diff --git a/How_to_set_up_an_Open_Source_Project.md b/How_to_set_up_an_Open_Source_Project.md new file mode 100644 index 0000000..9bf13b9 --- /dev/null +++ b/How_to_set_up_an_Open_Source_Project.md @@ -0,0 +1,28 @@ +# How to set up an Open Source Project + +inspiriert von Karl Fogel »[Producing Open Source Software](https://producingoss.com/)«, das auch [in deutscher Übersetzung](https://producingoss.com/de/index.html) vorliegt. + +## Bevor es losgeht + +Sieh’ dich um: wurde das Problem bereits von jemand anderem gelöst? + +## Die private Vision in eine öffentliche verwandeln + +1. Einen guten Namen auswählen +2. Eine kurze und aussagekräftige Projektbeschreibung schreiben (Mission Statement) +3. Klarmachen, dass das Projekt unter einer Open Source-Lizenz entwickelt wird. (z.B. GPL oder MIT) +4. Liste auf, welche Features (auch geplante) die Software enthält, und welche Voraussetzungen benötigt werden (Features and Requirements List) +5. Den Status der Entwicklung kommunizieren (z.B. in einer Projekt-Timeline oder mit einem Aktivitätstracker) +6. Downloadmöglichkeit mit wenig Overhead und eindeutiger Versionsnummer schaffen +7. Ein zugängliches Versionsverwaltungssystem und ein Bug-Tracker +8. Kommunikationskanäle eröffnen +9. Richtlinien für Entwickler_innen (Hinweis auf Kommunikationskanäle, Bug-Reporting, Einreichen von Patches, Art der Entwicklung) +10. Dokumentation (Basics: einrichten, Arbeitsweise, erste Schritte, Tasks erledigen; ggf. noch zu dokumentierende Teile kennzeichnen; FAQ einrichten) +11. Die Dokumentation verfügbar machen: online (User Documentation), sowie im Programmcode (Developer Documentation) +12. Ggf.: Demos, Screenshots, Videos, Beispiele +13. GitHub (o.ä.) hosted den Code, ggf. eine Website für User, die keine Entwickler_innen sind +14. Eine Lizenz wählen (z.B. GPL oder MIT) +15. Pflege eine gute Projektkultur +16. Vermeide private, projektentscheidende Diskussionen (»If there's no reason for it to be private, it should be public.«) +17. Unhöflichkeit von Beginn an abwürgen (Eigene Richtlinien ernstnehmen) +18. Nutze Code-Reviews, um Qualität zu sichern und Entwickler_innen zu beteiligen und Feedback zu ermöglichen \ No newline at end of file diff --git a/Vorschlaege_fuer_Projekte.md b/Vorschlaege_fuer_Projekte.md new file mode 100644 index 0000000..7081c98 --- /dev/null +++ b/Vorschlaege_fuer_Projekte.md @@ -0,0 +1,12 @@ +# Vorschläge für Projekte + +- Eine Website erstellen (HTML und CSS) +- Eine Website mit einem Static-Site-Generator erstellen lassen (z.B. Hugo) (Markdown) +- Einen interaktiven Einführungskurs zu git schreiben (in Markdown, mit [tigyog.app](https://tigyog.app)) +- Eine Datenbank zu einem beliebigen Thema erstellen (SQL, ggf. SQLite) +- Programmiervorlagen portieren: von einem BlueJ-Java Programm zu einem Online-IDE-Programm +- eine Kommandozeilenanwendung schreiben: + - ein Textadventure + - ein Programm, das römische Zahlen entgegennimmt und arabische ausgibt (oder umgekehrt) + - beliebige andere Ideen +- …