Skip to content

Commit 9a67a4e

Browse files
committed
readme is updated
1 parent 2b17aaa commit 9a67a4e

File tree

3 files changed

+231
-219
lines changed

3 files changed

+231
-219
lines changed

docs/README.de.md

Lines changed: 101 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,178 +1,179 @@
1-
# Frontend-Entwicklungsprojekt mit JavaScript - Abgabe
1+
# Abgabe Frontend-Entwicklungsprojekt mit JavaScript
22

33
## Wähle deine Sprache
44

55
- 🇺🇸 [Englisch](README.md)
66
- 🇪🇸 [Spanisch](README.es.md)
77

8-
## Behandelte Themen
8+
<!-- ------------------------------------------------------------------------------------------- -->
9+
## Projektziel
10+
11+
Zur Übung und Demonstration des im Online-Unterricht erworbenen Wissens besteht dieses Projekt darin, eine Webanwendung ähnlich wie Wallapop zu entwickeln. Die Verwendung von JavaScript-Bibliotheken oder -Frameworks ist nicht erlaubt, allerdings dürfen externe CSS-Utilities verwendet werden.
12+
Zusätzlich muss eine `db.json`-Datei für das Backend bereitgestellt werden, die die notwendigen Beispieldaten für die Korrektur enthält.
13+
14+
<!-- ------------------------------------------------------------------------------------------- -->
15+
## Erlerntes und Angewandtes Wissen
916

1017
- Grundlegende Funktionsweise eines Browsers.
1118
- Browser Object Model (BOM):
1219
- Navigation
1320
- Location
1421
- Window
1522
- Document Object Model (DOM), seine Knoten und Elemente.
16-
- Auswahl von Knoten.
23+
- Auswahl von DOM-Knoten.
1724
- Erstellen und Entfernen von DOM-Elementen.
18-
- Bearbeiten von DOM-Attributen sowie deren Styles und CSS-Klassen.
19-
- Umgang mit DOM-Ereignissen.
25+
- Manipulation von Attributen, Stilen und CSS-Klassen im DOM.
26+
- Umgang mit DOM-Events.
2027
- Standardverhalten von HTML-Komponenten.
21-
- *Event Bubbling* und *Capturing*.
22-
- Promises und ihre Zustände: *pending*, *fulfilled* und *rejected*.
28+
- Event-Bubbling und Capturing.
29+
- Promises und ihre Zustände: *pending*, *fulfilled*, *rejected*.
2330
- HTTP-Anfragen mit `fetch`.
2431
- `localStorage` und `sessionStorage`.
2532
- Lokale Datenspeicherung in HTML5: Cookies, Storage und IndexedDB.
2633

27-
## Projektbeschreibung
28-
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-
32-
### 1. Beitrag-Übersicht
33-
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:
34+
<!-- ------------------------------------------------------------------------------------------- -->
35+
## Projektdetails
3736

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).
37+
### 1. Post-Übersicht
4238

43-
- Beim Klicken auf einen Beitrag gelangt man zur Detailansicht.
44-
- Wenn der Benutzer angemeldet ist, soll ein Button zur Beitragserstellung angezeigt werden.
39+
- Jeder Post soll ein Bild (falls vorhanden), Name, Beschreibung, Preis und ob es sich um Kauf oder Verkauf handelt anzeigen.
40+
- Die Posts müssen über einen *Endpoint* geladen werden.
41+
- Die Übersichtsseite muss alle UI-Zustände handhaben:
42+
- **Leer** (keine Posts vorhanden).
43+
- **Fehler** (beim Laden der Posts).
44+
- **Ladevorgang** (während die Posts geladen werden).
45+
- **Erfolg** (Posts erfolgreich geladen).
46+
- Beim Klicken auf einen Post soll die Detailseite geöffnet werden.
47+
- Wenn der Benutzer eingeloggt ist, soll ein Button zum Erstellen neuer Posts angezeigt werden.
4548

46-
### 2. Beitrags-Details
49+
### 2. Post-Detailansicht
4750

48-
- Es sollen Bild (falls vorhanden), Name, Beschreibung, Preis und Kauf/Verkauf angezeigt werden.
49-
- Die Benutzeroberfläche muss alle Zustände verwalten:
50-
51-
- **Leer** (Beitrag existiert nicht).
51+
- Zeigt Bild (falls vorhanden), Name, Beschreibung, Preis und ob Kauf oder Verkauf.
52+
- Muss alle UI-Zustände behandeln:
53+
- **Leer** (Post existiert nicht).
5254
- **Fehler** (beim Laden der Daten).
53-
- **Ladevorgang** (während des Ladens).
54-
- **Erfolg** (Informationen wurden erfolgreich geladen).
55+
- **Ladevorgang** (während Daten geladen werden).
56+
- **Erfolg** (Daten erfolgreich geladen).
57+
- Wenn der Benutzer angemeldet ist und der Besitzer des Posts ist, soll ein Lösch-Button mit Bestätigung angezeigt werden.
58+
59+
### 3. Erstellung eines Posts
60+
61+
- Muss ein Formular mit folgenden Feldern enthalten:
62+
- **Foto** (optional).
63+
- **Name** (Pflichtfeld).
64+
- **Beschreibung** (Pflichtfeld).
65+
- **Preis** (Pflichtfeld).
66+
- **Kauf/Verkauf** (Pflichtfeld).
67+
- Beim Absenden des Formulars wird ein Request an das Backend gesendet, um den Post zu speichern.
68+
- Die UI-Zustände müssen behandelt werden:
69+
- **Fehler** (beim Speichern).
70+
- **Ladevorgang** (beim Speichern).
71+
- **Erfolg** (Post erfolgreich gespeichert).
72+
- Nur eingeloggte Benutzer haben Zugriff auf diese Seite. Andernfalls erfolgt eine Weiterleitung zur Übersicht mit Hinweis.
73+
74+
### 4. Login
5575

56-
- Ist der Benutzer authentifiziert und Eigentümer des Beitrags, soll ein Löschbutton mit Bestätigung angezeigt werden.
76+
- Zeigt ein Formular mit Benutzername und Passwort.
77+
- Beim Absenden wird der Benutzer über das Backend authentifiziert und ein JWT-Token empfangen.
78+
- UI-Zustände: Laden, Fehler, Erfolg.
5779

58-
### 3. Beitrag erstellen
80+
### 5. Registrierung
5981

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)
82+
- Ähnlich wie die Login-Seite.
83+
- Registriert den Benutzer im Backend.
84+
- UI-Zustände: Laden, Fehler, Erfolg.
6685

67-
- Beim Absenden soll der Beitrag über eine API-Anfrage im Backend gespeichert werden.
68-
- Die Benutzeroberfläche muss folgende Zustände behandeln:
86+
### 6. Optionale Ziele
6987

70-
- **Fehler** (beim Speichern).
71-
- **Ladevorgang** (während des Speicherns).
72-
- **Erfolg** (Beitrag wurde erfolgreich gespeichert).
88+
- Paginierung der Posts in der Übersicht (API liefert standardmäßig nur 10).
89+
- Post-Suchfunktion.
90+
- Bearbeitung von Posts (nur wenn Benutzer Eigentümer ist).
91+
- Filterung nach statischen *Tags*.
92+
- Dynamische *Tags* ermöglichen.
7393

74-
- Diese Seite ist nur für angemeldete Benutzer zugänglich. Andernfalls wird man zur Übersicht umgeleitet und informiert.
94+
<!-- ------------------------------------------------------------------------------------------- -->
95+
## Verwendete Technologien
7596

76-
### 4. Login
97+
### Sprachen
7798

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.
99+
- **HTML**: Strukturierung des Inhalts und Aufbau der Seitenstruktur.
100+
- **CSS**: Design und visuelle Gestaltung der Seite für ein ansprechendes Nutzererlebnis.
101+
- **JavaScript**: Interaktivität und dynamische Funktionalitäten wie Formularvalidierung, Animationen und Event-Handling.
81102

82-
### 5. Registrierung
103+
### Abhängigkeiten
83104

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.
105+
Keine
87106

88-
## Optional
107+
<!-- ------------------------------------------------------------------------------------------- -->
108+
## Installations- und Nutzungshinweise
89109

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.
110+
### Softwareanforderungen
95111

96-
## REST-API zur Projektunterstützung
112+
- **[Git](https://git-scm.com/downloads)** (getestet mit Version **2.47.1.windows.1**)
113+
- **[Visual Studio Code](https://code.visualstudio.com/)** (getestet mit Version **1.99.0**)
114+
- **[Sparrest (REST-API)](https://github.com/kasappeal/sparrest.js)** (entwickelt von **Alberto Casero****KeepCoding**)
115+
- **Live Server** (VS Code Add-on, *optional*)
97116

98-
Zur Simulation einer Datenbank wird **sparrest.js** verwendet — eine vom Dozenten Alberto Casero (KeepCoding) erstellte REST-API, basierend auf `json-server`.
117+
### Repository-Klonen
99118

100-
### Repository klonen
119+
API REST Sparrest
101120

102121
```bash
103122
git clone https://github.com/kasappeal/sparrest.js.git
104123
```
105124

125+
Projekt
126+
106127
```bash
107-
git clone https://github.com/PabloSch26/keepcoding-frontend-javascript-submission-5.git
128+
git clone https://github.com/PabloSch26/keepcoding-05-frontend-javascript.git
108129
```
109130

110131
![Demo](https://github.com/PabloSch26/pablo-abaroa-schilling/blob/main/etc/clone-repository-visual-studio-code.gif)
111132

112-
Dies startet den Server und stellt die REST-API bereit, sodass du mit der simulierten Datenbank interagieren kannst.
133+
### Schritte zur Nutzung des Projekts
113134

114-
## Verwendete Technologien
135+
Der Server muss gestartet werden, um die REST-API zu aktivieren und mit der simulierten Datenbank zu interagieren.
115136

116-
- **HTML**: Für die Strukturierung der Inhalte und des Seitenlayouts.
117-
- **CSS**: Für das visuelle Design und die Benutzeroberfläche, um ein konsistentes und attraktives Nutzererlebnis zu bieten.
118-
- **JavaScript**: Für die Hinzufügung von Interaktivität und dynamischen Funktionen auf der Webseite, wodurch die Benutzererfahrung mit Funktionen wie Formularvalidierung, Animationen und Ereignisbehandlung verbessert wird.
137+
1. Lade das Projekt als ZIP-Datei von GitHub herunter oder klone es mit SourceTree.
138+
2. Füge es in Visual Studio Code zu deinem Workspace hinzu.
139+
3. Nachdem du Sparrest heruntergeladen hast, installiere die Abhängigkeiten. Ersetze dann die generierte `db.json` durch die Datei aus diesem Projekt.
119140

120-
## Installations- und Nutzungshinweise
121-
122-
### Softwareanforderungen
123-
124-
- **Visual Studio Code** (getestet mit Version 1.99.0)
125-
- **Live Server** (VS Code-Erweiterung, optional)
126-
127-
### Programmbeschreibung
128-
129-
- **Visual Studio Code**: Integrierte Entwicklungsumgebung (IDE) zur Projektausführung. Achte darauf, Version 1.99.0 zu verwenden, um Kompatibilitätsprobleme zu vermeiden.
130-
- **Live Server**: Erweiterung für VS Code, die eine lokale HTML-Vorschau im Browser mit Live-Reload ermöglicht.
131-
132-
### Schritte zur Verwendung des Projekts
133-
134-
1. Lade die Projektdateien als ZIP von GitHub herunter oder klone das Repository mit SourceTree.
135-
136-
2. Öffne das Projekt anschließend in deinem Arbeitsbereich in Visual Studio Code.
141+
Zum Starten der Datenbank führe folgenden Befehl im Sparrest-Verzeichnis aus:
137142

138-
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.
139-
140-
Starte die Datenbank mit folgendem Befehl im Sparrest-Verzeichnis:
141-
142-
```bash
143143
npm start
144-
```
145144

146145
### Hinweise
147146

148-
- 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:
147+
- Die Datei `db.json` enthält drei Benutzerkonten und 14 Posts. Hier sind die Zugangsdaten, um sich anzumelden und vorhandene Posts zu bearbeiten:
149148

150149
- [pablsch.it@gmail.com](mailto:pablsch.it@gmail.com) / Passwort: 123456
151150
- [Pedro.it@gmail.com](mailto:Pedro.it@gmail.com) / Passwort: 123456
152151
- [jose.JJ@gmail.com](mailto:jose.JJ@gmail.com) / Passwort: 123456
153152

154-
## Keine Beiträge oder Lizenzen
155-
156-
Dieses Projekt hat derzeit keine externen Beiträge oder eine Lizenz.
157-
153+
<!-- ------------------------------------------------------------------------------------------- -->
158154
## Projektvorschau
159155

160-
### Home
156+
### Startseite
161157

162158
![Home](../etc/preview_images/home.png)
163159

164-
### Home Mobile
160+
### Startseite Mobil
165161

166162
![Home Mobile](../etc/preview_images/home_mobile.png)
167163

168-
### Create Post
164+
### Post erstellen
169165

170166
![Create Post](../etc/preview_images/create_post.png)
171167

172-
### Post Detail
168+
### Post-Detail
173169

174170
![Post Detail](../etc/preview_images/post_detail.png)
175171

176-
### Edit Post
172+
### Post bearbeiten
177173

178174
![Edit Post](../etc/preview_images/post_edit.png)
175+
176+
<!-- ------------------------------------------------------------------------------------------- -->
177+
## Beiträge und Lizenz
178+
179+
Dieses Projekt enthält keine externen Beiträge und steht unter keiner Lizenz.

0 commit comments

Comments
 (0)