=========================================== Website-Bau mit verschiedenen Technologien =========================================== Übersicht ========= In diesem Projekt zeigen wir, wie man eine Website mit verschiedenen Technologien erstellt und welche Vor- und Nachteile die einzelnen Ansätze mit sich bringen. Die ausgewählten Technologien sind Plain (HTML, CSS), WordPress, NiceGUI und Angular. Zeil website (die nachzu bauen ist): .. image:: /img/figma_page_example.png :alt: Muster Student Beispiel :align: center Über das Projekt ================ Das Ziel dieses Projekts ist es, die Erstellung einer Website anhand eines Beispiels, wie es im bereitgestellten Bild zu sehen ist, mit verschiedenen Technologien zu demonstrieren. Wir haben uns für folgende Technologien entschieden: - **Plain (HTML, CSS)** - **WordPress** - **NiceGUI** - **Angular** Jede Technologie wird ihre eigenen Abschnitte haben, die ihre Implementierung und die Vor- und Nachteile beschreiben. WordPress ========= Einführung ---------- WordPress ist ein beliebtes Content-Management-System (CMS), das es Benutzern ermöglicht, Websites einfach zu erstellen und zu verwalten. Es bietet zahlreiche Themen und Plugins, die die Anpassung und Funktionalität erweitern. In diesem Abschnitt wird die Erstellung einer Website mit WordPress.com beschrieben. Schritt-für-Schritt-Anleitung ----------------------------- 1. **WordPress.com Konto erstellen**: - Gehen Sie zu `WordPress.com `_ und erstellen Sie ein Konto. - Folgen Sie den Anweisungen auf der Website, um ein neues Konto zu erstellen. 2. **Ein Thema auswählen**: - Wählen Sie ein geeignetes Thema, das eine einfache Anpassung ermöglicht. Es wird empfohlen, ein leicht anpassbares und responsives Theme zu wählen. - Gehen Sie im WordPress.com-Dashboard zu „Design“ > „Themes“ und wählen Sie ein passendes Theme aus. 3. **Seitenstruktur erstellen**: - **Neue Seite erstellen**: - Gehen Sie im WordPress-Dashboard auf „Seiten“ > „Neu hinzufügen“. - Geben Sie der Seite einen passenden Titel, z.B. „Muster Student Profil“. - **Seiteninhalt hinzufügen**: - Fügen Sie die verschiedenen Abschnitte hinzu, die im Beispiel zu sehen sind: Profilbild, „Über mich“, Projekte und soziale Medien. - Verwenden Sie dafür den WordPress-Block-Editor (Gutenberg), um Texte, Bilder und Links hinzuzufügen. 4. **Layout und Design anpassen**: - **Profilbild hinzufügen**: - Fügen Sie einen Bild-Block hinzu und laden Sie das Profilbild hoch. - **Textblöcke für „Über mich“ und „Meine Projekte“ hinzufügen**: - Verwenden Sie Textblöcke, um die entsprechenden Texte hinzuzufügen. - **Soziale Medien Links hinzufügen**: - Fügen Sie Schaltflächen- oder Icon-Blöcke hinzu und verlinken Sie diese zu den entsprechenden sozialen Medienprofilen. 5. **Anpassungen vornehmen**: - **CSS-Anpassungen**: - Gehen Sie zu „Design“ > „Customizer“ > „Zusätzliches CSS“ und fügen Sie benutzerdefiniertes CSS hinzu, um das Layout weiter anzupassen. - Beispiel: .. code-block:: css .profile-picture { border-radius: 50%; width: 150px; height: 150px; margin: 0 auto; } .about-section, .projects-section { margin: 20px 0; } .social-media-links a { margin: 0 10px; text-decoration: none; } 6. **Seite veröffentlichen**: - Nachdem alle Inhalte und Anpassungen vorgenommen wurden, klicken Sie auf „Veröffentlichen“, um die Seite live zu schalten (wurde für diese Beispielseite nicht gemacht). Ergebnis --------- .. image:: /img/wordpress_page_example.png :alt: Muster Student Beispiel :align: center Vor- und Nachteile von WordPress ----------------------------------- **Vorteile**: - Einfache Bedienung und Verwaltung ohne tiefgehende Programmierkenntnisse. - Vielzahl von Themes und Plugins zur Erweiterung der Funktionalität. - Große Community und umfangreiche Dokumentation. **Nachteile**: - Kann durch viele Plugins langsamer werden. - Sicherheitsrisiken, wenn nicht regelmäßig aktualisiert. - Eingeschränkte Flexibilität im Vergleich zu reinem HTML, CSS und JS oder Frameworks wie Angular. Plain (HTML, CSS) =================== Einführung ---------- Unabhängig von der Technologie, in der eine Website erstellt wird, muss sie letztendlich in HTML und CSS übersetzt werden, damit sie von einem Browser angezeigt werden kann. Ein Low-Level-Ansatz ist also die direkte Verwendung von Plain HTML und CSS. Schritt-für-Schritt-Anleitung ----------------------------- 1. **Anlegen der Ordnerstruktur**: Es gibt keine festen Vorgaben für die Ordnerstruktur. Eine einfache HTML-Datei kann bereits im Browser angezeigt werden. Dennoch ist es sinnvoll, das Projekt zu strukturieren, z. B. so: | website/ | ├── index.html | ├── css/ | │ └── style.css | └── images/ 2. **boilerplate code in index.html einfügen**: - Der Boilerplate-Code bildet die Grundlage für jede HTML-Datei und enthält wichtige Deklarationen wie die Dokumententyp-Deklaration, den HTML-Tag und den Head- und Body-Bereich. .. code-block:: How to create a website using HTML and CSS

Test

3. **Grund struktur der Seite in HTML definieren**: - Der Body-Bereich einer HTML-Seite enthält den eigentlichen Inhalt, der für den Besucher sichtbar ist. - Um Elemente auf der Seite zu definieren, bietet HTML viele Tags. - Eine kleine Tag-Auswahl: -
ist ein generischer Container, um mehrere Teile zu gruppieren. -

-

wird genutzt, um Überschriften einzufügen. -

definiert einen simplen Text-Paragraphen. - zum Einfügen von Bildern. - definiert einen klickbaren Link. - Damit die Komponenten der Website später gestyled werden können, können bei den Tags zusätzlich eine ID oder ein Klassenname angegeben werden. .. code-block:: 3. **Elemente stylen**: - Mit CSS wird das Aussehen und die Anordnung der HTML-Komponenten definiert. - Dazu werden in der CSS-Datei Stilregeln erstellt. .. code-block:: html, body { background-color: #2b2b2b; height: 100%; } .seperator{ background: #734e3e; width: 10px; } - Der Teil vor den {}-Klammern definiert, auf was sich die Regel bezieht. - In der Regel wird der eigentliche Stil definiert. 3. **Website anzeigen**: - Während der Entwicklung kann die Website einfach durch Öffnen der index.html-Datei in einem Browser angezeigt werden. - Um die Website im Internet verfügbar zu machen, muss sie auf einem Webserver gehostet werden Ergebnis -------- .. image:: /img/plain_html_page_example.png :alt: Muster Student Beispiel :align: center Vor- und Nachteile von Plain HTML/CSS ------------------------------------- **Vorteile**: - Plain HTML/CSS ist auf allen Browsern und Geräten kompatibel. - Websites mit Plain HTML/CSS sind oft schneller und schlanker als Websites, die mit Frameworks erstellt wurden. - SEO-freundlich: Plain HTML/CSS ist für Suchmaschinen leicht zu crawlen und zu indizieren. **Nachteile**: - Code kann schenll unübersichtlich werden - wenige teile des codes sind Wiederverwendbar im Vergleich zu Komponenten basierten Frameworks - Website sind schwierig responsive zu gestalten NiceGUI ======= Einführung ---------- NiceGUI ist ein Framework für die Erstellung von grafischen Benutzeroberflächen (GUIs) in Python. Es ist einfach zu erlernen und ermöglicht die schnelle Erstellung von Webanwendungen, Dashboards, Roboterprojekten und vielem mehr. NiceGUI zeichnet sich durch seine Backend-First-Philosophie aus, die es dem Entwickler ermöglicht, sich auf die Python-Logik zu konzentrieren, während das Framework sich um die Details der Webentwicklung kümmert. In diesem Abschnitt wird die Erstellung einer Website mit NiceGUI beschrieben. Schritt-für-Schritt-Anleitung ----------------------------- 1. **NiceGUI mit pip installieren**: - pip3 install nicegui 2. **Initialisierung** - Neue .py datei erstellen - NiceGUI importieren: .. code-block:: python from nicegui import ui 3. **Elemente hinzfügen** - Über die importierte **ui** können Elemente hinzugefügt werden - Zum Beispiel ein Label: .. code-block:: python ui.label('test') - Es kann aber auch direkt html code eingefügt werden: .. code-block:: python ui.html("

test
") 4. **Styling hinzufügen** Es gibt mehrere Varianten das Styling umzusetzen: **1.** Über die **add_cs()** Methode: .. code-block:: python ui.add_css(''' .klassenName { width:100% } ''') Die Klasse kann folgend genutzt werden: .. code-block:: python ui.label('test').classes('klassenName') **2.** Über die **style()** Methode: .. code-block:: python ui.label('test').style('width: 100%') **3.** Direkt in den **html** Elementen: .. code-block:: python ui.html("
test
") 5. **Layout erstellen** - NiceGUI bietet hier sehr viele Möglichkeiten die in der Doku nachzulesen sind: https://nicegui.io/documentation/section_page_layout 6. **Application starten** - In der letzten Zeile des Code: .. code-block:: python ui.run() - Dann in Terminal .py starten - Nun öffnet sich die Website im Browser Ergebnis --------- .. image:: /img/nice_gui_page_example.png :alt: Muster Student Beispiel nice_gui :align: center Zeitdauer zur Erstellung: ~2:30h Vor- und Nachteile von NiceGUI ----------------------------------- **Vorteile**: - Einfach zu erlernen - Schnelle Entwicklung **Nachteile**: - Bietet im Vergleich zu anderen Frameworks wenig Funktionen - Performance leidet bei komplexeren GUIs Angular =================== Einführung ---------- Angular ist ein beliebtes Frontend-Framework für die Entwicklung von Single-Page-Anwendungen (SPAs) und dynamischen Webanwendungen. Es bietet eine strukturierte und erweiterbare Plattform für die Entwicklung moderner Webanwendungen. In diesem Abschnitt wird beschrieben, wie man eine einfache Single-Page-Anwendung mit Angular erstellt. Schritt-für-Schritt-Anleitung ----------------------------- 1. **Angular-Projekt einrichten:**: - Installieren Sie Angular CLI, falls noch nicht installiert, indem Sie den Befehl npm install -g @angular/cli ausführen. - Erstellen Sie ein neues Angular-Projekt mit dem Befehl ng new my-app. 2. **Komponenten erstellen:**: - Erstellen Sie die benötigten Komponenten für Ihre Anwendung, z.B. Header, Footer, Home usw., mit dem Befehl ng generate component component-name. (In unserem Projekt haben wir keine extra Komponenten erstellt sondern direkt in der app.component.html gearbeitet) 3. **Routing einrichten:**: - Konfigurieren Sie das Routing für Ihre Anwendung, indem Sie Routen in der Datei app-routing.module.ts definieren. (In unserem Projekt haben wir keine extra Routen erstellt) 4. **Layout und Design anpassen**: - Passen Sie das Layout und Design Ihrer Komponenten an, indem Sie HTML und CSS verwenden. - Verwenden Sie Angular-Direktiven und -Bindings, um Daten dynamisch anzuzeigen und zu aktualisieren. 5. **Funktionalität hinzufügen:**: - Implementieren Sie die erforderliche Funktionalität Ihrer Anwendung, z.B. Datenabruf von einer API, Formularvalidierung usw., in den entsprechenden Komponenten und Diensten. 6. **Seite hosten**: - Wenn Sie Ihre Anwendung testen bzw. beim Entwickeln ihren Fortschritt sehen wollen, können Sie sie mit dem Befehl ng serve lokal hosten. Ergebnis --------- .. image:: /img/angular_page_example.png :alt: Muster Student Beispiel :align: center Vor- und Nachteile von Angular ----------------------------------- **Vorteile**: - Strukturierte und erweiterbare Plattform für die Entwicklung von SPAs. - Umfangreiche Dokumentation und Community-Unterstützung. - Eingebaute Features wie Dependency Injection und bidirektionale Datenbindung erleichtern die Entwicklung. **Nachteile**: - Längere Einarbeitungszeit aufgrund der steileren Lernkurve im Vergleich zu anderen Frameworks wie React. - Größere Dateigröße der erstellten Anwendung im Vergleich zu reinem JavaScript. - Strenge Konventionen können die Flexibilität für erfahrene Entwickler einschränken. Fazit =================== In diesem Projekt haben wir gezeigt, wie man eine Website mit verschiedenen Technologien erstellen kann. Jeder Ansatz hat seine eigenen Vor- und Nachteile, und die Wahl der richtigen Technologie hängt von den spezifischen Anforderungen und Präferenzen ab. Der WordPress-Ansatz ermöglicht eine einfache und schnelle Erstellung von Websites, während andere Technologien möglicherweise mehr Flexibilität und Kontrolle bieten. - Unsere Powerpoint-Präsentation finden Sie hier zum downloaden: :download:`unsere Präsentation ` Literaturverzeichnis ==================== 1. WordPress.com. (n.d.). Retrieved from https://wordpress.com/ 2. WordPress.org. (n.d.). Retrieved from https://wordpress.org/ 3. HTML5, CSS3, and JavaScript for Modern Web Development. (2020). Packt Publishing. 4. Angular: Up and Running. (2018). O'Reilly Media. 5. NiceGUI Documentation. (n.d.). Retrieved from https://nicegui.io/