|
5 | 5 | - 🇪🇸 [Spanisch](README.es.md)
|
6 | 6 | - 🇺🇸 [Englisch](README.md)
|
7 | 7 |
|
8 |
| -## Erlernte Kenntnisse |
| 8 | +## Behandelte Themen |
9 | 9 |
|
10 | 10 | - Grundlegende Funktionsweise eines Browsers.
|
11 | 11 | - Browser Object Model (BOM):
|
12 | 12 | - Navigation
|
13 | 13 | - Location
|
14 | 14 | - Window
|
15 | 15 | - Document Object Model (DOM), seine Knoten und Elemente.
|
16 |
| -- Knoten auswählen. |
| 16 | +- Auswahl von Knoten. |
17 | 17 | - Erstellen und Entfernen von DOM-Elementen.
|
18 |
| -- Manipulation von DOM-Attributen sowie deren Stilen und CSS-Klassen. |
19 |
| -- DOM-Ereignisbehandlung. |
20 |
| -- Standardverhalten in HTML-Komponenten. |
21 |
| -- Event Bubbling & Capturing. |
22 |
| -- Promises und deren Zustände: *pending*, *fulfilled* und *rejected*. |
| 18 | +- Bearbeiten von DOM-Attributen sowie deren Styles und CSS-Klassen. |
| 19 | +- Umgang mit DOM-Ereignissen. |
| 20 | +- Standardverhalten von HTML-Komponenten. |
| 21 | +- *Event Bubbling* und *Capturing*. |
| 22 | +- Promises und ihre Zustände: *pending*, *fulfilled* und *rejected*. |
23 | 23 | - HTTP-Anfragen mit `fetch`.
|
24 | 24 | - `localStorage` und `sessionStorage`.
|
25 | 25 | - Lokale Datenspeicherung in HTML5: Cookies, Storage und IndexedDB.
|
26 | 26 |
|
27 | 27 | ## Projektbeschreibung
|
28 | 28 |
|
29 |
| -Um das in den virtuellen Kursen erlernte Wissen zu üben und zu demonstrieren, besteht dieses Projekt darin, eine Webanwendung zu entwickeln, die Wallapop ähnlich ist. Die Verwendung von JavaScript-Bibliotheken oder -Frameworks ist nicht gestattet, externe CSS-Utilities können jedoch verwendet werden. |
30 |
| -Zusätzlich muss eine `db.json`-Datei für das Backend mit den Beispiel-Daten bereitgestellt werden, die für die Korrektur der Aufgabe erforderlich sind. |
| 29 | +Ziel dieses Projekts ist es, das im virtuellen Unterricht erworbene Wissen zu üben und zu demonstrieren. Es soll eine Webanwendung entwickelt werden, die ähnlich wie Wallapop funktioniert. Die Verwendung von JavaScript-Bibliotheken oder -Frameworks ist nicht erlaubt, jedoch dürfen externe CSS-Utilities genutzt werden. |
| 30 | +Zusätzlich muss eine Datei `db.json` bereitgestellt werden, die Beispieldaten für die Korrektur enthält. |
31 | 31 |
|
32 |
| -### 1. Anzeigenliste |
| 32 | +### 1. Beitrag-Übersicht |
33 | 33 |
|
34 |
| -- Jede Anzeige sollte ihr Bild (falls vorhanden), den Namen, die Beschreibung, den Preis und die Angabe, ob es sich um einen Kauf oder Verkauf handelt, anzeigen. |
35 |
| -- Die Anzeigen müssen über ein Endpoint abgerufen werden. |
36 |
| -- Der Listenscreen muss alle Zustände der Benutzeroberfläche verwalten: |
| 34 | +- Jeder Beitrag soll ein Bild (falls vorhanden), einen Namen, eine Beschreibung, einen Preis und die Angabe "Kauf" oder "Verkauf" anzeigen. |
| 35 | +- Die Beiträge sollen über einen API-Endpunkt abgerufen werden. |
| 36 | +- Die Benutzeroberfläche muss alle Zustände verwalten: |
37 | 37 |
|
38 |
| - - **Leer** (keine Anzeigen). |
39 |
| - - **Fehler** (beim Laden der Anzeigen). |
40 |
| - - **Laden** (während die Anzeigen geladen werden). |
41 |
| - - **Erfolg** (wenn die Anzeigen erfolgreich abgerufen wurden). |
| 38 | + - **Leer** (keine Beiträge vorhanden). |
| 39 | + - **Fehler** (beim Laden der Beiträge). |
| 40 | + - **Ladevorgang** (während des Ladens). |
| 41 | + - **Erfolg** (Beiträge wurden erfolgreich geladen). |
42 | 42 |
|
43 |
| -- Durch Klicken auf eine Anzeige sollte der Benutzer zum Detailbildschirm dieser Anzeige weitergeleitet werden. |
44 |
| -- Wenn der Benutzer angemeldet ist, sollte eine Schaltfläche angezeigt werden, um zum Bildschirm zur Erstellung von Anzeigen zu gelangen. |
| 43 | +- Beim Klicken auf einen Beitrag gelangt man zur Detailansicht. |
| 44 | +- Wenn der Benutzer angemeldet ist, soll ein Button zur Beitragserstellung angezeigt werden. |
45 | 45 |
|
46 |
| -### 2. Anzeigendetail |
| 46 | +### 2. Beitrags-Details |
47 | 47 |
|
48 |
| -- Es sollte das Bild (falls vorhanden), den Namen, die Beschreibung, den Preis und die Angabe, ob es sich um einen Kauf oder Verkauf handelt, anzeigen. |
49 |
| -- Es sollte alle Zustände der Benutzeroberfläche verwalten: |
| 48 | +- Es sollen Bild (falls vorhanden), Name, Beschreibung, Preis und Kauf/Verkauf angezeigt werden. |
| 49 | +- Die Benutzeroberfläche muss alle Zustände verwalten: |
50 | 50 |
|
51 |
| - - **Leer** (die Anzeige existiert nicht). |
52 |
| - - **Fehler** (beim Laden der Anzeigedaten). |
53 |
| - - **Laden** (während die Daten geladen werden). |
54 |
| - - **Erfolg** (wenn die Daten erfolgreich abgerufen wurden). |
| 51 | + - **Leer** (Beitrag existiert nicht). |
| 52 | + - **Fehler** (beim Laden der Daten). |
| 53 | + - **Ladevorgang** (während des Ladens). |
| 54 | + - **Erfolg** (Informationen wurden erfolgreich geladen). |
55 | 55 |
|
56 |
| -- Wenn der Benutzer authentifiziert ist und die Anzeige ihm gehört, sollte eine Schaltfläche zum Löschen der Anzeige angezeigt werden (mit Bestätigung). |
| 56 | +- Ist der Benutzer authentifiziert und Eigentümer des Beitrags, soll ein Löschbutton mit Bestätigung angezeigt werden. |
57 | 57 |
|
58 |
| -### 3. Erstellung einer Anzeige |
| 58 | +### 3. Beitrag erstellen |
59 | 59 |
|
60 |
| -- Es sollte ein Formular mit den folgenden Feldern enthalten: |
61 |
| - - **Foto** (optional). |
62 |
| - - **Name** (erforderlich). |
63 |
| - - **Beschreibung** (erforderlich). |
64 |
| - - **Preis** (erforderlich). |
65 |
| - - **Kauf/Verkauf** (erforderlich). |
| 60 | +- Ein Formular mit folgenden Feldern muss vorhanden sein: |
| 61 | + - **Foto** (optional) |
| 62 | + - **Name** (Pflichtfeld) |
| 63 | + - **Beschreibung** (Pflichtfeld) |
| 64 | + - **Preis** (Pflichtfeld) |
| 65 | + - **Kauf/Verkauf** (Pflichtfeld) |
66 | 66 |
|
67 |
| -- Beim Absenden des Formulars sollte eine Anfrage an das Backend gesendet werden, um die Anzeige zu speichern. |
68 |
| -- Die Benutzeroberfläche muss folgende Zustände verwalten: |
| 67 | +- Beim Absenden soll der Beitrag über eine API-Anfrage im Backend gespeichert werden. |
| 68 | +- Die Benutzeroberfläche muss folgende Zustände behandeln: |
69 | 69 |
|
70 |
| - - **Fehler** (beim Speichern der Anzeige). |
71 |
| - - **Laden** (während die Anzeige gespeichert wird). |
72 |
| - - **Erfolg** (wenn die Anzeige erfolgreich gespeichert wurde). |
| 70 | + - **Fehler** (beim Speichern). |
| 71 | + - **Ladevorgang** (während des Speicherns). |
| 72 | + - **Erfolg** (Beitrag wurde erfolgreich gespeichert). |
73 | 73 |
|
74 |
| -- Dieser Bildschirm kann nur aufgerufen werden, wenn der Benutzer angemeldet ist. Andernfalls wird der Benutzer zum Listenbildschirm weitergeleitet und erhält eine Nachricht mit dem Grund. |
| 74 | +- Diese Seite ist nur für angemeldete Benutzer zugänglich. Andernfalls wird man zur Übersicht umgeleitet und informiert. |
75 | 75 |
|
76 | 76 | ### 4. Login
|
77 | 77 |
|
78 |
| -- Es sollte ein Formular mit den Feldern Benutzername und Passwort angezeigt werden. |
79 |
| -- Nach dem Absenden des Formulars sollte der Benutzer gegen das Backend authentifiziert werden, und ein JWT-Token sollte abgerufen werden. |
80 |
| -- Die Zustände: Laden, Fehler und Erfolg müssen verwaltet werden. |
| 78 | +- Es soll ein Formular mit Benutzername und Passwort angezeigt werden. |
| 79 | +- Beim Absenden soll der Benutzer über das Backend authentifiziert werden und ein JWT-Token erhalten. |
| 80 | +- Die Zustände „Laden“, „Fehler“ und „Erfolg“ müssen verwaltet werden. |
81 | 81 |
|
82 | 82 | ### 5. Registrierung
|
83 | 83 |
|
84 |
| -- Ähnlich zum Login-Bildschirm. |
85 |
| -- Der Benutzer sollte im Backend registriert werden. |
86 |
| -- Die Zustände: Laden, Fehler und Erfolg müssen verwaltet werden. |
| 84 | +- Ähnlich wie der Login-Bildschirm. |
| 85 | +- Der Benutzer soll über das Backend registriert werden. |
| 86 | +- Die Zustände „Laden“, „Fehler“ und „Erfolg“ müssen verwaltet werden. |
87 | 87 |
|
88 | 88 | ## Optional
|
89 | 89 |
|
90 |
| -- Pagination der Anzeigen in der Liste (die API gibt standardmäßig nur 10 zurück). |
91 |
| -- Suchfunktion für Anzeigen. |
92 |
| -- Bearbeitung von Anzeigen (nur wenn der Benutzer der Eigentümer ist). |
93 |
| -- Filterung nach Tags (Statische Tags). |
94 |
| -- Dynamische Tags ermöglichen. |
| 90 | +- Paginierung der Beiträge in der Übersicht (API liefert standardmäßig nur 10). |
| 91 | +- Suchfunktion für Beiträge. |
| 92 | +- Bearbeitung von Beiträgen (nur durch den Eigentümer). |
| 93 | +- Filterung nach statischen Tags. |
| 94 | +- Dynamische Tags implementieren. |
95 | 95 |
|
96 |
| -## REST API für das Projekt |
| 96 | +## REST-API zur Projektunterstützung |
97 | 97 |
|
98 |
| -Um eine Datenbank zu emulieren, wird **sparrest.js** verwendet, eine REST API, die von Dozent Alberto Casero (KeepCoding) erstellt wurde und auf `json-server` basiert. |
| 98 | +Zur Simulation einer Datenbank wird **sparrest.js** verwendet — eine vom Dozenten Alberto Casero (KeepCoding) erstellte REST-API, basierend auf `json-server`. |
99 | 99 |
|
100 | 100 | ### Repository klonen
|
101 | 101 |
|
102 | 102 | ```bash
|
103 | 103 | git clone https://github.com/kasappeal/sparrest.js.git
|
104 | 104 | ```
|
105 | 105 |
|
106 |
| -Dies startet den Server und aktiviert die REST API, sodass Sie mit der simulierten Datenbank interagieren können. |
| 106 | +Dies startet den Server und stellt die REST-API bereit, sodass du mit der simulierten Datenbank interagieren kannst. |
107 | 107 |
|
108 | 108 | ## Verwendete Technologien
|
109 | 109 |
|
110 |
| -- **HTML**: Zur Strukturierung des Inhalts und zum Erstellen des Seitenlayouts. |
111 |
| -- **CSS**: Für das Design und die visuelle Gestaltung der Seite, um eine attraktive und konsistente Benutzererfahrung zu gewährleisten. |
| 110 | +- **HTML**: Für die Strukturierung der Inhalte und des Seitenlayouts. |
| 111 | +- **CSS**: Für das visuelle Design und die Benutzeroberfläche, um ein konsistentes und attraktives Nutzererlebnis zu bieten. |
112 | 112 |
|
113 | 113 | ## Installations- und Nutzungshinweise
|
114 | 114 |
|
115 | 115 | ### Softwareanforderungen
|
116 | 116 |
|
117 |
| -- **Visual Studio** (Getestet mit Version 1.99.0) |
118 |
| -- **Live Server** (Visual Studio Addon, optional) |
| 117 | +- **Visual Studio Code** (getestet mit Version 1.99.0) |
| 118 | +- **Live Server** (VS Code-Erweiterung, optional) |
119 | 119 |
|
120 |
| -### Beschreibung der Programme |
| 120 | +### Programmbeschreibung |
121 | 121 |
|
122 |
| -- **Visual Studio**: Integrierte Entwicklungsumgebung (IDE), die benötigt wird, um das Projekt auszuführen. Stellen Sie sicher, dass Sie Version 1.99.0 verwenden, um Kompatibilitätsprobleme zu vermeiden. |
123 |
| -- **Live Server**: Visual Studio-Erweiterung, die es ermöglicht, HTML-Dateien lokal in einem Browser anzuzeigen und Änderungen in Echtzeit anzuzeigen. |
| 122 | +- **Visual Studio Code**: Integrierte Entwicklungsumgebung (IDE) zur Projektausführung. Achte darauf, Version 1.99.0 zu verwenden, um Kompatibilitätsprobleme zu vermeiden. |
| 123 | +- **Live Server**: Erweiterung für VS Code, die eine lokale HTML-Vorschau im Browser mit Live-Reload ermöglicht. |
124 | 124 |
|
125 |
| -### Schritte zur Verwendung dieses Projekts |
| 125 | +### Schritte zur Verwendung des Projekts |
126 | 126 |
|
127 |
| -1. Laden Sie die komprimierte Datei des Projekts von GitHub auf Ihren Computer herunter oder klonen Sie sie über SourceTree. |
| 127 | +1. Lade die Projektdateien als ZIP von GitHub herunter oder klone das Repository mit SourceTree. |
128 | 128 |
|
129 |
| -2. Sobald das Projekt heruntergeladen oder geklont wurde, fügen Sie es zu Ihrem Arbeitsbereich in Visual Studio Code hinzu. |
| 129 | +2. Öffne das Projekt anschließend in deinem Arbeitsbereich in Visual Studio Code. |
130 | 130 |
|
131 |
| -3. Nachdem Sie Sparrest heruntergeladen haben, aktualisieren Sie die Abhängigkeiten. Um die getestete Datenbank in dieses Projekt zu integrieren, kopieren Sie die `db.json`-Datei aus diesem Projekt und ersetzen Sie die Datei, die von Sparrest nach der Initialisierung generiert wird. |
| 131 | +3. Nach dem Herunterladen von Sparrest aktualisiere die Abhängigkeiten. Um die in diesem Projekt verwendete Datenbank zu nutzen, kopiere die Datei `db.json` aus dem Projektordner und ersetze die automatisch generierte Datei in Sparrest. |
132 | 132 |
|
133 |
| -Um die Datenbank zu starten, führen Sie einfach den folgenden Befehl im Sparrest-Verzeichnis aus: |
| 133 | +Starte die Datenbank mit folgendem Befehl im Sparrest-Verzeichnis: |
134 | 134 |
|
135 | 135 | ```bash
|
136 | 136 | npm start
|
137 | 137 | ```
|
138 | 138 |
|
139 | 139 | ### Hinweise
|
140 | 140 |
|
141 |
| -- Die `db.json`-Datei enthält drei Konten und 14 Beiträge. Dies sind die Anmeldeinformationen für jedes Konto, um sich im Projekt anzumelden und die bereits erstellten Beiträge zu bearbeiten: |
| 141 | +- Die Datei `db.json` enthält drei Benutzerkonten und 14 Beiträge. Folgende Zugangsdaten können verwendet werden, um sich anzumelden und bestehende Beiträge zu bearbeiten: |
142 | 142 |
|
143 |
| -- [pablsch.it@gmail.com](mailto:pablsch.it@gmail.com) / pwd: 123456 |
144 |
| -- [Pedro.it@gmail.com](mailto:Pedro.it@gmail.com) / pwd: 123456 |
145 |
| -- [jose.JJ@gmail.com](mailto:jose.JJ@gmail.com) / pwd: 123456 |
| 143 | +- [pablsch.it@gmail.com](mailto:pablsch.it@gmail.com) / Passwort: 123456 |
| 144 | +- [Pedro.it@gmail.com](mailto:Pedro.it@gmail.com) / Passwort: 123456 |
| 145 | +- [jose.JJ@gmail.com](mailto:jose.JJ@gmail.com) / Passwort: 123456 |
146 | 146 |
|
147 | 147 | ## Keine Beiträge oder Lizenzen
|
148 | 148 |
|
|
0 commit comments