Webentwicklung 2
Section outline
-
-
Hochladen der ZIP-Datei im Sommersemester bis spätestens 17.07.2024, 23 Uhr
Termin zum Übergabetermin (15 Min pro App, BBB) : 18. (ganztägig) und 19.07.2024 (vormittags).
Jeder Teilnehmer gibt eine ZIP Datei mit folgenden Inhalten ab:
- Quellcode der App (ohne den Ordner node_modules), sonst bitte alles.
- Screenshots der einzelnen Views.
- Kurzdoku der App (sehr knappe kurze Beschreibung der Hauptfunktion/zweck, Datenmodell und Besonderheiten, Zieldevice (Smartphone, PC, Tablet) sowie Screenshots der App. Keine seitenlange Doku! Maximal 3 Seiten.
Dateiname - bitte nur so:
Web2_Vorname_Name_Matrikelnummer_Vorname_Name_Matrikelnummer_TitelDerApp.zip
------------------------------------------------------------------
Bewertung der App:
Neue Bewertung ab SoSe2024:
- App/UI/UX/Umsetzung der Idee: 40%
- Code/Aufbau: 40%
- Fragen beim Abnahmegespräch: 20%
(Konzepte müssen verstanden sein und es sollte bekannt sein, warum was gemacht wird. Dies wird eingeführt, um zu vermeiden, dass ChatGPT Komponenten wahllos zu Projekten zusammengeklickt werden. ChatGPT eignet sich gut zum Lernen. Jedoch sollte stehts genau nachvollzogen werden, was generiert wird).
------------------------------------------------------------------
Hinweise zur Umsetzung:
- Es sollte ein WebApp sein mit einem echten Use Case.
- Umsetzung mit Astro/SolidJS
- Pages in Server Side Technologie.
- Pages mit Solid Komponenten.
- RESTful Service: Es sollte ein Cloud-Anwendung sein, sprich Daten sollen eingegeben werden, gespeichert, geladen werden können. Es sollten aber auch rein darstellende Seiten enthalten sein wie beispielsweise About/Welcome etc.
- Für 1,x: Login und Node Server
- Im Serversystem sollte REST (und falls notwendig Sockets) umgesetzt werden und die Daten in einer Datenbank gespeichert werden.
- SQLite Datenbank mit Server-Endpoints
- Saubere Architektur und klarer Aufbau (auch auf Variablen und Datenbankbenennungen achten, kein Deutsch/Englisch Mix in den Variablen), bitte für ein Sprache bei der Darstellung (also die Sprache der Webseite, Tabellen etc.) entscheiden.
-
-
-
- Anwendung der Webtechnik
- Digitalisierung
- Web 1.0 bis heute
- Serverstrukturen (Monolith, Microservice)
- SaaS, Serverless Functions, API
- Gängige Serversysteme
- NodeJS (Überblick)
- Native und Webapps
- Moderne Systeme
- Zukunftsblick
-
-
- Visual Studio Code (VC) ist eine Freeware Umgebung für alle möglichen Software Projekte. Es bietet Support für Javascript, Astro, Solid etc. an.
- Nach der Installation von VC klicken sie auf Erweiterung und geben REPL in die Suchleiste ein und installieren Javascript REPL.
- In dem Video zeige ich, wie es geht.
- Visual Studio Code (VC) ist eine Freeware Umgebung für alle möglichen Software Projekte. Es bietet Support für Javascript, Astro, Solid etc. an.
-
- Grundlagen
- Strings
- Objekte
- Arrays und Iteration
- Funktionsparameter
- Anonyme Funktionen
- const, let, var
- Klassen und Vererbung
- filter, find, map
- Spread-Operator
- Grundlagen
-
- Anonyme Funktionen inkl. Übung
- Anonyme Funktionen inkl. Übung
-
- Anonyme Funktionen mit Übungen
- Anonyme Funktionen mit Übungen
-
- Beispiele zum Finden in Arrays, Filtern und Itererieren
- Beispiele zum Finden in Arrays, Filtern und Itererieren
-
- Beispiele und Übungen zu map/filter/find
- Beispiele und Übungen zu map/filter/find
-
- Funktionen in Objekten
- Klassen
- Inkl. Übung
-
- Objektdestrukturierung
- Template Strings
- Objektdestrukturierung
-
Add-On: Closures und Scopes
-
- Strings
- Arrays
- map/filter/find
- Strings
-
-
-
- Was ist npm
- Pakete für das Projekt laden
- Inhalte der package.json
-
- Astro Projekt
- Komponentenbasierter Aufbau
- map-Funktion zum Aufbau einer Seite
-
Dieser Seed basiert nicht mehr wie im SoSe23 auf Astroship. Hier ist eine neue Vorlage enthalten, die auf DaisyUI aufbaut und intuitiver zu verstehen ist.
- DaisyUI
- SSR Redaktions-/Blogsystem
- SSR Seiten
- Navbar, die in Mobile zum Burgermenu wirs (collapse)
-
- Übersicht über Astro
- Contentdriven
- Ordnerbasierte Struktur
-
- Nutzung von Layouts
- Footer
- Responsive Navbars (die sich zu einem Burgen Menu zusammenfalten bei kleineren Screens)
-
- Server Side Rendering am Beispiel der Seite "Person"
- Die Seiten werden statisch gebaut und sind im Frontend dann nicht mehr änderbar. --> für reinen Content ohne Interaktion sehr gut geeignet.
-
- Automatische Darstellung der Blogkomponten abhängig vom Datum der Veröffentlichung und publish Flag
- Automatische Darstellung der Blogkomponten abhängig vom Datum der Veröffentlichung und publish Flag
-
- Markdown Files in Seite einbetten.
- Dynamische Routen am Beispiel [article].astro
- Markdown Files in Seite einbetten.
-
- Theme in tailwind.config.cjs eintragen
- Theme in Layout aktivieren
- Eigene Themes erstellen
- Theme in tailwind.config.cjs eintragen
-
-
- Warum Solid?
- Verbreitung und Konzept
-
- Solid Integration in Astro
- Die Komponente in den Browser laden mit client:load
- Client-Side
-
- Reagieren auf Nutzerinteraktionen am Beispiel eines Buttons.
- Signals: getter und setter
- Reagieren auf Nutzerinteraktionen am Beispiel eines Buttons.
-
- Text/Nummern Eingabe mit <input ...>
- Platzhalter
- Änderung eines Signals durch EIngabe in das Input-Feld mit onInput
- Text/Nummern Eingabe mit <input ...>
-
- Checkboxen
- Signale initial setzen, um einen definierten Zustand beim Rendern zu erhalten. Zum Beispiel soll eine Checkbox beim Öffnen gesetzt oder nicht gesetzt sein oder ein initialer Text in einem Input-Feld gesetzt werden.
-
-
- Rest
- Astro Endpooints (siehe Video)
- SQLite
-
- SQLite
- SQL-Befehle: SELECT, WHERE, ORDER BY
Die Bibliotheken wurden in package.json bereits eingefügt. Sie wurden folgendermaßen hinzugefügt:
- npm i better-sqlite3
- npm i uuid
- npm i path
Mit DB Browser können SQLite Datenbank dateien geöffnet und editiert werden: https://sqlitebrowser.org/dl/
UUIDs erzeugen: https://www.uuidgenerator.net/version4 -
Serveranfrage mit GET
- Fetch definieren
- Server nimmt Anfrage entgegen
- SQLite Datenbankabfrage
- Objekt bauen und in JSON String umwandeln
- Im Frontend entgegen nehmen und von JSON String in Javascript Objekt zurückwandeln
- Darstellung aktualisieren
Tipp: Üben Sie das so lange, bis sie den Zyklus sauber nur anhand des Codes erklären können.
-
- Daten löschen
- id in den Header packen, an den Server schicken
- Daten aktualisieren
-
- Modal öffnen
- Neue Daten eingeben
- Daten an den Server schicken
- In der SQLite speichern
- Anzeige aktualisieren
- Props von Komponenten
-
- Daten ändern mit einem Button in der Tabelle
-
Ab diesem Video wird die Anwendung RENT PhotoEquipment gezeigt.
- Bilder hochladen
- Entgegennehmen der Bilder auf Server
- Speichern unter neuem Namen
- In Datenbank speichern
-
- n:m Datenmodell der Rents
- Daten verschiedener Tabellen mit Joins zusammenfügen.
Mehr Infos unter: https://www.w3schools.com/sql/sql_join_left.asp - Darstellen der Ausleihen mit Fotos
-
- Neue Daten anlegen.
- Dropdown für Persons/Items.
-
-
- Branch rent_login
- Datenbank vorbereiten für Login
-
-
-
- Prisma ist ein Werkzeug zum komfortablen Zugriff auf Datenbanken.
- Versionsverwaltung und Migration ist enthalten.
-