Web Apps bauen – Teil 2

Praxisbeispiel: Mit ChatGPT und Docker von der Idee zur eigenen Webapp

Im ersten Teil haben wir uns angesehen, was Webapps sind und wie ChatGPT bei ihrer Entwicklung helfen kann. Doch wie könnte ein solches Projekt in der Praxis aussehen?

Als Beispiel nehmen wir eine kleine Aufgabenverwaltung als Webapp. Benutzer sollen Aufgaben anlegen, bearbeiten und als erledigt markieren können. Das gleiche Vorgehen lässt sich natürlich auch auf andere Projekte übertragen – beispielsweise auf einen Terminplaner, eine Kundenverwaltung oder eine interne Unternehmensanwendung.

Der grundsätzliche Weg sieht dabei so aus:

Idee → Entwicklung mit ChatGPT → Docker-Umgebung → lokaler Testserver → professionelles Hosting → fertige Webapp

Von der Idee zur ersten Webapp

Am Anfang steht zunächst eine möglichst klare Beschreibung dessen, was die Anwendung können soll.

Wir könnten ChatGPT beispielsweise bitten, eine einfache Aufgabenverwaltung zu entwickeln. Anschließend lässt sich die Anwendung schrittweise erweitern.

Neue Funktionen können dabei in natürlicher Sprache beschrieben werden:

„Füge ein Fälligkeitsdatum hinzu.“

„Ergänze eine Suchfunktion.“

„Optimiere die Darstellung für Smartphones.“

ChatGPT kann daraufhin den bestehenden Programmcode anpassen und gleichzeitig erklären, welche Änderungen vorgenommen werden.

Gerade für Einsteiger ist das interessant, weil man nicht jede technische Lösung bereits im Voraus kennen muss.

Docker als Grundlage für Entwicklung und Tests

Für die technische Umgebung verwenden wir Docker.

Vereinfacht gesagt sorgt Docker dafür, dass unsere Webapp zusammen mit den benötigten Komponenten in einer klar definierten Umgebung ausgeführt wird.

Das hat einen großen Vorteil: Die Anwendung kann auf dem Entwicklungsrechner, auf unserem lokalen Testserver und später auf einem professionellen Server unter sehr ähnlichen Bedingungen laufen.

Statt jeden Computer einzeln für die Anwendung einzurichten, bringen wir die benötigte Umgebung gewissermaßen mit der Webapp mit.

Das macht Entwicklung und Tests übersichtlicher und reduziert typische Probleme, die durch unterschiedliche Softwareversionen oder Konfigurationen entstehen können.

Entwicklung auf dem eigenen Rechner

Zunächst entwickeln und testen wir die Webapp auf dem eigenen Computer.

ChatGPT unterstützt dabei beispielsweise bei der Erstellung des Programmcodes, beim Design der Benutzeroberfläche oder bei der Fehlersuche.

Docker stellt währenddessen die Umgebung bereit, in der unsere Anwendung ausgeführt wird.

Dadurch können wir Funktionen ausprobieren, verändern und wieder verwerfen, ohne für jeden Versuch den gesamten Rechner neu konfigurieren zu müssen.

Ist eine erste Version fertig, folgt der nächste Schritt.

Test auf einem lokalen Debian-Server

Bevor die Webapp öffentlich ins Internet gestellt wird, übertragen wir sie auf einen lokalen Debian-Server.

Das kann beispielsweise ein kleiner PC, ein Mini-PC oder eine virtuelle Maschine sein.

Auch auf diesem Server verwenden wir Docker.

Dadurch können wir die gleiche Anwendung, die bereits auf unserem Entwicklungsrechner funktioniert hat, in einer vergleichbaren Umgebung starten.

Der Server befindet sich zunächst nur im eigenen Netzwerk. So können wir die Webapp von verschiedenen Geräten aus testen, ohne sie bereits öffentlich zugänglich machen zu müssen.

Beispielsweise können wir ausprobieren, wie sich die Anwendung auf einem Notebook, Tablet oder Smartphone verhält.

Der Debian-Server wird damit zu unserer persönlichen Testumgebung.

Warum diese Zwischenstufe sinnvoll ist

Natürlich könnte man eine Webapp theoretisch direkt vom Entwicklungsrechner auf einen öffentlichen Server übertragen.

Der lokale Testserver schafft jedoch eine zusätzliche Sicherheitsstufe.

Neue Funktionen können dort zunächst ausprobiert werden. Fehler lassen sich erkennen und beheben, bevor echte Benutzer mit der Anwendung arbeiten.

Gleichzeitig sammelt man praktische Erfahrungen mit dem Betrieb einer Webapp auf einem eigenständigen Server.

Der Ablauf lautet damit:

Entwickeln → lokal testen → auf dem Debian-Server testen → veröffentlichen

Vom Testserver zum professionellen Hosting

Funktioniert die Anwendung zuverlässig, kann sie auf einen Server bei einem professionellen Hosting-Anbieter übertragen werden.

Auch dort kann wieder Docker eingesetzt werden.

Dadurch ergibt sich eine durchgängige Struktur:

Entwicklungsrechner mit Docker → Debian-Testserver mit Docker → professioneller Server mit Docker

Die Anwendung muss also nicht für jede Umgebung vollständig neu eingerichtet werden.

Das ist einer der entscheidenden Vorteile einer containerbasierten Entwicklung.

Entwicklungsrechner und Debian Testserver können dabei physikalisch sogar die gleiche Maschine sein. Ein Docker Container stellt die Entwicklungsumgebung bereit, ein zweiter Container die Testumgebung.

Die wichtigsten Vorteile von Docker

Docker bietet für unser Beispiel mehrere Vorteile.

Die Entwicklungsumgebung lässt sich reproduzieren. Dadurch können Entwicklungsrechner, Testserver und Produktivserver mit vergleichbaren Voraussetzungen arbeiten.

Die einzelnen Bestandteile einer Anwendung lassen sich außerdem sauber voneinander trennen. Änderungen können dadurch kontrollierter durchgeführt und getestet werden.

Ein weiterer Vorteil ist die Übertragbarkeit. Eine funktionierende Docker-Anwendung kann vergleichsweise einfach von einem System auf ein anderes übertragen werden.

Gerade bei der Entwicklung mit ChatGPT ist das praktisch. Neue Funktionen lassen sich zunächst in einer kontrollierten Umgebung ausprobieren, bevor sie auf dem öffentlich erreichbaren System eingesetzt werden.

Sicherheit und Backups bleiben wichtig

Docker nimmt uns allerdings nicht alle Aufgaben ab.

Sobald eine Webapp öffentlich erreichbar ist, müssen Themen wie Sicherheit, Updates, Datenschutz und Backups berücksichtigt werden.

Auch die verwendeten Docker-Komponenten und der Server selbst müssen regelmäßig gepflegt werden.

Besonders wichtige Daten sollten zudem regelmäßig gesichert werden.

Docker erleichtert also den technischen Betrieb einer Anwendung, ersetzt aber keine verantwortungsvolle Administration.

ChatGPT als Begleiter

ChatGPT kann während des gesamten Projekts unterstützen.

Das beginnt bei der ersten Idee und reicht über die Entwicklung bis zur Einrichtung der Docker-Umgebung und zur späteren Fehlersuche.

Besonders hilfreich ist es, sich vorgeschlagene Lösungen erklären zu lassen, anstatt sie lediglich zu übernehmen.

So kann aus einer einfachen Anfrage wie „Erstelle mir eine Webapp“ nach und nach ein echtes Lernprojekt entstehen.

Man beschäftigt sich dabei nicht nur mit Programmierung, sondern lernt gleichzeitig Grundlagen über Webanwendungen, Docker, Linux und den Betrieb eines Servers.

Fazit

Die Kombination aus ChatGPT, Docker und einem lokalen Debian-Testserver bietet einen interessanten Einstieg in die Entwicklung eigener Webapps.

ChatGPT unterstützt bei der Entwicklung, Docker sorgt für eine möglichst einheitliche Umgebung und der Debian-Server bietet einen geschützten Bereich für realistische Tests.

Der gesamte Weg sieht damit so aus:

Idee → ChatGPT → Entwicklung mit Docker → Debian-Testserver mit Docker → professionelles Hosting → fertige Webapp

Damit lässt sich eine Anwendung Schritt für Schritt entwickeln, testen und schließlich veröffentlichen.

Die technischen Details wie etwa die konkrete Einrichtung von Docker, die Struktur der Container, Datenbanken, Netzwerke oder die Übertragung auf den Server werden in weiteren, separaten Schritt-für-Schritt-Anleitungen behandelt.