Sie haben die Grundlagen der Webentwicklung, die Programmierung von Backends mit Python und Flask, den Umgang mit Datenbanken sowie die Nutzung von Git als Versionskontrollsystem kennengelernt. Darüber hinaus haben Sie eigene Projekte auf dem Server umgesetzt, den Escape Room technisch realisiert und erste Teamprogrammiererfahrungen gesammelt.
Ein Softwareprojekt ist nicht erst dann abgeschlossen, wenn der Code fehlerfrei funktioniert. Ein professioneller Projektabschluss umfasst immer:
In diesem Tutorial werden Sie folgende Schritte durchführen:
https://informatik-franke.de/lehre/sose/eis/feedback/fb.html
Nach Abschluss dieses Tutorials haben Sie Ihr Projekt formal dokumentiert, hochgeladen und abgegeben und sind somit optimal auf das Softwareprojekt-Modul (M2) im kommenden Wintersemester vorbereitet.
➔ Eine Beispiel-README.md wird im Anschluss bereitgestellt und kann direkt bearbeitet werden.
Eine Projektdokumentation beschreibt alle wichtigen Informationen zu Ihrer Software. Sie enthält unter anderem:
Die Dokumentation ermöglicht es anderen Personen, Ihr Projekt zu verstehen und weiterzuentwickeln. Sie zeigt, dass Sie strukturiert und professionell arbeiten – eine grundlegende Kompetenz in allen Softwareprojekten.
Markdown ist eine einfache Auszeichnungssprache, mit der Sie Textdateien strukturieren und formatieren können. README-Dateien auf Plattformen wie GitHub nutzen häufig das Markdown-Format, da es leicht lesbar und gleichzeitig gut strukturiert ist.
# Überschrift 1
## Überschrift 2
**Fett**
*Kursiv*
- Listeintrag
`Code inline`
```python
print("Hello World")
TextEdit, stellen Sie auf „Plain Text“ um und fügen Sie den Inhalt ein. Speichern Sie die Datei als README.md.Editor oder Notepad++, fügen Sie den Inhalt ein und speichern Sie als README.md.README.md.Im Folgenden finden Sie eine Beispiel-README.md. Diese Vorlage enthält alle wichtigen Abschnitte, die in einer Projektdokumentation enthalten sein sollten.
Aufgabe:
ls -a, tree)python3 --version, pip show flask | grep Version, mysql --version)README.md.Hier können Sie die Beispiel-README.md herunterladen und in Ihrem Editor (VSCode, TextEdit, Notepad++) öffnen und bearbeiten.
📥 Beispiel-README.md herunterladenIm nächsten Abschnitt finden Sie die vollständige Beispiel-README.md.
# 📘 Projektdokumentation (README.md)
Herzlich willkommen zu Ihrer Projektdokumentation!
Diese README.md hilft Ihnen dabei, Ihr Projekt **klar, vollständig und verständlich zu dokumentieren**.
---
## 📝 1. Projekttitel
✏️ **Aufgabe:** Geben Sie Ihrem Projekt einen passenden Namen.
💡 **Beispiel:** Escape Room Webapp – Gruppe ISA##
---
## 📝 2. Projektbeschreibung
✏️ **Aufgabe:** Beschreiben Sie in **einfachen Worten**:
- Was macht Ihr Projekt?
- Für wen ist es gedacht?
- Was ist das Ziel?
💡 **Beispiel-Prompt für ChatGPT:**
„Beschreibe meine Webanwendung in 3 einfachen Sätzen. Sie ist ein Escape Room Spiel mit HTML, CSS, JS, Flask und MariaDB.“
---
### 📂 Ordnerstruktur des www-Verzeichnisses
✏️ **Aufgabe:** Geben Sie hier die Struktur Ihres `home`-Ordners an. Verwenden Sie dazu den folgenden Befehl auf Ihrem Server.
**Befehl:**```bash
tree /home/isa## -L 3```
> 📝 **Hinweis:**
> - `tree` zeigt Ihnen die Ordner und Dateien als Baumstruktur an.
> - `-L 3` bedeutet, dass **maximal 3 Ebenen** angezeigt werden.
## 🛠️ 3. Verwendete Technologien und Versionen
Hier tragen Sie ein, **welche Programme, Frameworks und Tools** Sie verwendet haben.
👉 **Führen Sie dazu die Befehle direkt auf Ihrem Server aus** und kopieren Sie die Ergebnisse hier hinein.
---
### 🔢 Python Version
**Befehl:```python3 --version```
✏️ **Ergebnis hier eintragen:** Python ...
---
### 🔢 Flask Version
**Befehl:**```source venv/bin/activate
pip show flask | grep Version```
✏️ **Ergebnis hier eintragen:** Flask ...
---
### 🔢 MariaDB Version
**Befehl:**```
mysql --version```
✏️ **Ergebnis hier eintragen:** MariaDB ...
---
### 🔢 Git Version
**Befehl:**```
git --version```
✏️ **Ergebnis hier eintragen:** Git ...
---
### 🔢 Frontend Technologien
HTML, CSS, JavaScript (verwenden Standardbrowser wie Chrome oder Firefox)
---
## 📝 4. Tutorials & Inhalte
✏️ **Aufgabe:** Schreiben Sie hier stichpunktartig, welche Tutorials (U0 – U7) Sie bearbeitet haben und was Sie dort gelernt haben.
💡 **Beispiel:**
- **U0:** Terminal Grundlagen (Ordner, Dateien, Navigation)
- **U1:** SSH Schlüssel erstellen und Verbindung zum Server
- **U2:** Erste Landingpage mit HTML/CSS
- **U3:** Mehrere Seiten & responsives Design
- **U4:** Flask Hello World
- **U5:** Escape Room Projekt starten
- **U6:** Datenbank (MariaDB) einbinden
- **U7:** Git Grundlagen & Versionierung
---
## ⚙️ 5. Installationsanleitung
✏️ **Aufgabe:** Erklären Sie Schritt für Schritt, wie man Ihr Projekt startet.
💡 **Beispiel:**
1. Virtuelle Umgebung erstellen:
Wie erstellt man eine virtuelle Umgebung und wie startet man diese?
Sie wissen es nicht mehr? Schauen Sie im entsprechenden Tutorial nach :)
2. Flask installieren:
Wie installiert man Flask?
3. Anwendung starten:
Wie heißt die Hauptanwendung und wie startet man diese? (app.py)
4. Im Browser aufrufen:
Wie ruft man Ihre Anwendung auf? URL mit Port?
---
## 💡 6. Nutzung & Bedienung
✏️ **Aufgabe:** Beschreiben Sie einfach und klar:
- Welche Seiten/Funktionen hat Ihre Anwendung?
- Wie navigiert der Benutzer?
💡 **Prompt:** „Welche Funktionen hat meine Escape Room App und wie benutzt man sie?“
---
## 🐞 7. Bekannte Probleme & Bugs
✏️ **Aufgabe:** Listen Sie bekannte Fehler, Bugs oder unvollständige Funktionen auf.
💡 **Beispiel:**
- CSS nicht responsive auf Handy
- Datenbankabfrage für Rätsel funktioniert nicht stabil
---
## ✨ 8. Reflexion
Reflektieren Sie Ihre Lernerfahrungen ehrlich.
### ✅ Was lief gut?
✏️ **Aufgabe:** Wo hatten Sie Erfolgserlebnisse?
---
### ⚠️ Wo gab es Schwierigkeiten?
✏️ **Aufgabe:** Welche Themen waren herausfordernd?
---
### 🎯 Was möchten Sie im M2-Softwareprojekt vertiefen?
✏️ **Aufgabe:** Was interessiert Sie für das nächste Semester besonders?
---
## 📋 9. To-Do-Liste
✏️ **Aufgabe:** Markieren Sie, was bereits erledigt ist, und ergänzen Sie offene Punkte.
- [x] SSH-Verbindung hergestellt
- [x] HTML Landing Page erstellt
- [x] CSS gestaltet
- [x] Flask installiert & gestartet
- [x] Escape Room Rätsellogik programmiert
- [x] MariaDB eingebunden
- [ ] Responsives Design finalisiert
- [ ] Dokumentation abgeschlossen
---
## 🤖 10. Prompts zur Unterstützung
Verwenden Sie bei Bedarf KI-Tools wie ChatGPT und formulieren Sie eigene Prompts. Beispiele:
- „Erstelle eine Projektbeschreibung für eine Escape Room App mit Flask und MariaDB.“
- „Formuliere eine klare Installationsanleitung für mein Flask Projekt.“
- „Hilf mir, meine Reflexionsfragen strukturiert zu beantworten.“
---
✅ **Wichtig:**
Bitte löschen Sie alle Platzhalter, Prompts und Beispieltexte vor Abgabe.
---
Ende der Beispiel-README.md.
Verwenden Sie dazu das Terminal mit dem folgenden SCP-Befehl:
scp -P 2222 README.md st3fr1@edumake.de:/home/isa##/www/
Ersetzen Sie ## durch Ihre Benutzer- oder Gruppennummer.
Verbinden Sie sich via SSH und prüfen Sie, ob die Datei korrekt hochgeladen wurde:
ssh -p 2222 st3fr1@edumake.de
cd www
cat README.md
Sie finden die ausführliche Anleitung direkt bei GitHub unter:
https://docs.github.com/de/get-started/start-your-journey/uploading-a-project-to-github
GitHub ist eine Plattform, auf der Sie Ihre Projekte online speichern, versionieren und mit anderen teilen können. Dies ist ein wichtiger Standard in der Softwareentwicklung und wird auch im Modul M2 genutzt.
Ein Repository (kurz „Repo“) ist ein Speicherort auf GitHub, in dem Ihr Projekt liegt. Es enthält alle Dateien, Ordner, Dokumentationen und die Versionshistorie Ihres Projekts. Sie können es sich wie einen Projektordner vorstellen, der online verfügbar ist.
Falls Sie noch kein Konto besitzen, registrieren Sie sich unter https://github.com.
isa16-projekt, und klicken Sie auf „Create repository“.scp -P 2222 -r isa##@edumake.de:/home/isa## ~/Downloads/isa16
cd /home/isa16
git init
git add .
git commit -m "Initial commit"
echo ".ssh/" >> .gitignore
git add .gitignore
git commit -m "Add .gitignore to exclude SSH keys"
git remote add origin https://github.com/IHRBENUTZERNAME/IHRREPOSITORY.git
git branch -M main
git push -u origin main
💡 Tipp: Nutzen Sie bei der ersten Verbindung Ihr GitHub-Passwort oder ein Personal Access Token (PAT).
.ssh-Datei oder private Schlüssel hochladen.scp verfügbar ist, indem Sie eingeben:
scp
scp verfügbar ist, können Sie folgenden Befehl ausführen (passen Sie den Zielpfad an Ihren Benutzernamen an):scp -P 2222 -r isa16@edumake.de:/home/isa16 C:\\Users\\DEINNAME\\Downloads\\isa16
DEINNAME durch Ihren Windows-Benutzernamen, z.B.:C:\Users\stefan\Downloads\isa16
/home/isa16.scp -P 2222 -r isa16@edumake.de:/home/isa16 ~/Downloads/isa16
Herr Franke und Herr Müller werden Ihnen im kommenden Semester wieder verschiedene Themenvorschläge für Softwareprojekte vorstellen. Dennoch hat sich gezeigt, dass Projekte, bei denen Sie selbst eine intrinsische Motivation mitbringen, oft erfolgreicher und nachhaltiger umgesetzt werden.
Stellen Sie sich vorab folgende Fragen:
Senden Sie Ihre Überlegungen und Ideen als E-Mail an Herrn Franke. Schreiben Sie in die E-Mail:
Ein Minimal Viable Product (MVP) ist eine erste, lauffähige Version einer Software, die nur die wichtigsten Kernfunktionen enthält. Das Ziel ist es, schnell ein funktionierendes Produkt zu entwickeln, es zu testen und Feedback zu sammeln, bevor viel Zeit in zusätzliche Features investiert wird.
Weitere Informationen zum MVP finden Sie hier:
https://t2informatik.de/wissen-kompakt/minimum-viable-product/
Guter Überblick: Überblick über Vorgehensmodelle der Softwareentwicklung
https://www.scnsoft.de/blog/vorgehensmodelle-der-softwareentwicklung
Eine klare Anforderungsanalyse ist entscheidend für den Erfolg eines Softwareprojekts. Sie legt fest, was das Projekt können muss, welche Ziele verfolgt werden und welche Rahmenbedingungen gelten. Planen Sie daher ausreichend Zeit ein, um Anforderungen sauber zu definieren und mit Ihrer Gruppe abzusprechen.
Agile Methoden sind Vorgehensweisen in der Softwareentwicklung, bei denen Projekte in kleinen, überschaubaren Schritten umgesetzt werden. Sie ermöglichen Flexibilität und kontinuierliches Feedback während der Entwicklung.
Scrum ist ein agiles Framework, das in kurzen Entwicklungszyklen (Sprints) arbeitet. Teams reflektieren regelmäßig ihre Arbeit, um sich kontinuierlich zu verbessern.
✅ Vorteile von Scrum:
Kanban ist eine Methode zur Visualisierung von Aufgaben in Form von Karten auf einem Board. Sie hilft dabei, Arbeitsprozesse transparent zu machen und Engpässe schnell zu erkennen.
✅ Vorteile von Kanban:
Ihr Feedback ist wichtig, um die Veranstaltung kontinuierlich zu verbessern und auf Ihre Bedürfnisse anzupassen.
Bitte nehmen Sie sich am Ende des Semesters ein paar Minuten Zeit und füllen Sie das Feedbackformular unter folgendem Link aus:
https://informatik-franke.de/lehre/sose/eis/feedback/fb.html
Vielen Dank für Ihre Teilnahme und Ihre Rückmeldungen!