Aufgabe by PUW.
Schreiben Sie eine API, die die Daten aus Schulen.json
verarbeitet und folgende Endpoints anbietet. Die Grundstruktur des Programms ist schon in der Datei index.js vordefiniert.
GET /a1
: alle Schulen (Name, Adr, PLZ Ort) mit PLZ > 4000GET /a2
: alle Schulen (Name, Adr, PLZ Ort) in WienGET /a3
: alle Schulen (Name, Adr, PLZ Ort) in Wien, bei der die Adresse „gasse“ enthältGET /a4
: alle Schulen (Name, Adr, PLZ Ort) in Wien und TirolGET /a5
: Mailadresse aller Schulen in NÖGET /a6
: alle Schulen (Name) mit Informatik-AusbildungGET /a7
: Webseite aller Schulen mit Informatik-Ausbildung in WienGET /a8
: Webseite aller Schulen mit Informatik-Ausbildung in Wien im HTML-Format mit bullet points, damit man das Code snippet auf einer Webseite einfügen könnteGET /a9
: alle Ausbildungen der Spengergasse (Name, Dauer, conditions, note)GET /a10
: alle Ausbildungen aller Wiener Schulen (Name, Dauer)GET /a11
: alle Schulen (Name, Adr, PLZ Ort) im (Quadrat-)Um“kreis“ der Spengergasse mit - 10km (10km in GPS-Distanz für lan/lot umwandeln)GET /a12
: alle Ausbildungen (Name, Dauer) im Umkreis (wie vorhin) der Spengergasse - 10kmGET /a13
: alle Ausbildungen (Name, Dauer) OHNE die der Spengergasse im Umkreis (wie vorhin) der Spengergasse - 10kmGET /a14
: alle Ausbildungen (Name, Dauer) in Wien OHNE die der 2 größten Schulen (TGM, Spengergasse)
Bearbeite die Datei public/index.html und ergänze folgende Funktion:
- Ergänze das Dropdown (Element mit id
endpoint
) um die fehlenden Endpoints; benutze die vorhandene Vorlage - Reagiere auf Änderungen des Dropdowns (Element mit id
endpoint
); rufe die Daten vom entsprechenden Endpoint auf und zeige diese an- Die alten Daten von vorigen Aufrufen werden immer gelöscht
- Sollte es einen Fehler geben, so wird einfach die Nachricht "(Daten konnten nicht geladen werden)" statt der Daten in das Element mit der id
mycontent
geschrieben
Abhängigkeiten installieren:
npm install
Das Programm selber kann mit folgendem Befehl gestartet werden:
# normal starten
npm run start
# mit nodemon starten
npm run dev
Zum Testen werden jest und supertest (API) sowie cypress (e2e) verwendet.
# für API-Test
npm run test:api
# für Frontend-Test (e2e mit cypress)
npm run test:e2e
npm run cypress:open # cypress öffnen (API muss gestartet sein)
# alle Tests durchlaufen
npm run test