Skip to content

Commit

Permalink
Add Aufgabe3 Checklist, README Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
zirpins committed Oct 2, 2021
1 parent d67a9ee commit 0e371a1
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Aufgabe1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ Das Ergebnis könnte wie folgt aussehen:

## Checkliste

Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form einer Checkliste.
Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form als Checkliste.

### Teil A: Formulare fertigstellen

Expand All @@ -172,7 +172,7 @@ Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form einer Checkl
- [ ] Platzhalter für alle Felder
- [ ] `fieldset` und `legend` zur Begrenzung des Formulars
- [ ] Für jedes Formular ein Element zum Absenden
- [ ] Formularvalidierung
- [ ] Formular-Validierung
- [ ] Latitude und Longitude mit festen Werten
- [ ] Im Tagging-Formular: Name obligatorisch, Hashtag optional
- [ ] Namen: max. 10 Buchstaben lang
Expand Down
2 changes: 1 addition & 1 deletion Aufgabe2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Ergänzen sie ihre `updateLocation`-Funktion im wie folgt:

## Checkliste

Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form einer Checkliste.
Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form als Checkliste.

### 1. Teilaufgabe: Koordinaten bestimmen

Expand Down
39 changes: 39 additions & 0 deletions Aufgabe3/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ Nach der Aktualisierung kann die zweite Aufgabe vorbereitet werden.

### 3.1.3 Node-js vorbereiten

An dieser Stelle benötigen sie eine Node.js Umgebung. Falls sie die empfohlene Variante mit **Visual Studio Code** und **Remote Containers** Erweiterung nutzen, öffnen sie das `vs1lab`-Verzeichnis in einem Node.js-Container (siehe Laboranleitung). Alternativ kann Node.js lokal installiert werden.

Mit gegebener Node.js Umgebung gehen sie wie folgt vor:

1. Führen sie `npm install` im Verzeichnis `Aufgabe3/gta_v3/` aus, um die nötigen Module zu laden und zu installieren.
2. Um die App später zu starten, führen sie `npm start` im Verzeichnis `Aufgabe3/gta_v3/` aus und öffnen sie [http://localhost:3000](http://localhost:3000) im **Browser**. Am Anfang funktioniert das aber noch nicht, da noch einige Änderungen gemacht werden müssen.

Expand Down Expand Up @@ -113,3 +117,38 @@ Der Server kann das Array mit GeoTag Objekten als `data-*`-Attribut einem geeign
Auf der Clientseite können sie dann das Attribut aus dem DOM lesen und den string wieder in ein Array Objekt umwandeln. Für einen JSON-String `taglist_json` erzeugt der Aufruf `JSON.parse(taglist_json)` das korrespondierende JavaScript Array Objekt. Dieses Array Objekt können sie der `getMapUrl`-Methode als Parameter übergeben.

**Aufgabe:** Erweitern Sie den Aufruf der `getMapUrl`-Methode aus der `updateLocation`-Funktion und übergeben sie neben der aktuellen Position des Clients zusätzlich einen Array von GeoTag Objekten des aktuellen Suchergebnisses im Discovery Widget. Auf der Karte sollen dann für alle Elemente der Ergebnisliste entsprechende Marker angezeigt werden.

## Checkliste

Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form als Checkliste.

### 1. Teilaufgabe: Server-Implementierung

- [ ] **Skripte** für Backend Funktionen fertigstellen
- [ ] **Klasse für GeoTag Objekte** erstellen (`./model/geotag.js`)
- [ ] **Klasse zur GeoTag Speicherung** erstellen (`./model/geotag-store.js`)
- [ ] Privaten Array nutzen
- [ ] Methoden `addGeoTag`, `removeGeoTag`, `getNearbyGeoTags`, `searchNearbyGeoTags` realisieren
- [ ] **Beispieldaten für GeoTag Objekte** einlesen (`./model/geotag-examples.js`)

- [ ] **Server Konfiguration und Routen** fertigstellen
- [ ] **Statische Dateien** bereitstellen (`./app.js`)
- [ ] Route `/tagging` zur **GeoTags Speicherung** erstellen. (`./routes/index.js`)
- [ ] Route `/discovery` zur **GeoTag Abfrage** erstellen. (`./routes/index.js`)

- [ ] Server **Template** erweitern (`./views/index.ejs`)
- [ ] Koordinaten in Formulare eintragen

### 2. Teilaufgabe: Client-Anpassung

- [ ] Teil A: `MapManager` und `LocationHelper` **Klassen in eigene Skripte auslagern** (`./public/javascripts/geotagging.js`)
- [ ] Teil B: `updateLocation`-Funktion **optimieren**
- [ ] Auslesen von Formularfeldern mit Koordinaten
- [ ] Bedingte Ausführung von `LocationHelper.findLocation()`

### 3. Teilaufgabe: Karten-Erweiterung

- [ ] EJS-Template mit `data-*`-Attribut erweitern
- [ ] Im `img`-Element ein `data-tags`-Attribut erstellen und **Array mit GeoTag Objekten als JSON-String** einfügen
- [ ] Aufruf von `getMapUrl` aus `updateLocation` erweitern
- [ ] Array mit GeoTag Objekten übergeben und **Map Marker anzeigen**
8 changes: 8 additions & 0 deletions Aufgabe4/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,11 @@ Die Umsetzung der Aufgabe könnte nach folgender Methode erfolgen:
Bei der Erstellung soll darauf geachtet werden, dass nur die GeoTags für die aktuell benötigte Seite geladen werden. Es sollen also **nicht** alle GeoTags angefragt, aber nur die aktuell sichtbaren (z.B. 10) angezeigt werden!

Ist man (wie in obiger Abbildung) auf der ersten Seite und möchte per Pfeil nach links eine Seite zurück blättern, dann soll nichts geschehen. Dasselbe gilt für die letzte Seite mit Pfeil nach rechts.

## Checkliste

Zur Übersicht folgen noch mal alle Anforderungen in kompakter Form als Checkliste.

### 1. Teilaufgabe: Server-Implementierung

- [ ] **Skripte** für Backend Funktionen fertigstellen

0 comments on commit 0e371a1

Please sign in to comment.