Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
63b28d6
Update README.md
Stefan-Espant Apr 17, 2023
d02ac43
v1.0
Apr 18, 2023
309b2ec
Merge branch 'fdnd-task:main' into main
Stefan-Espant Apr 19, 2023
37e9f1f
v.1.1
Apr 20, 2023
79c005f
v1.1.1
Apr 20, 2023
47f55c1
v1.2
Apr 20, 2023
f58e8ba
v1.2.1
Apr 20, 2023
60a4e0a
v1.3
Apr 21, 2023
d1af046
v1.3.1
Apr 23, 2023
8801778
startup
JalalToufik Apr 24, 2023
9cbbe2f
v1.3.2
Apr 24, 2023
33baffe
Merge pull request #9 from Stefan-Espant/header
Stefan-Espant Apr 24, 2023
78b613c
Merge branch 'main' into Jalal
JalalToufik Apr 24, 2023
dd880d7
v2.0
Apr 24, 2023
4b28986
zoekbalk toegevoegd
JalalToufik Apr 24, 2023
485152e
.
JalalToufik Apr 24, 2023
cd9a573
Merge pull request #10 from Stefan-Espant/Jalal
Stefan-Espant Apr 24, 2023
74c6f1d
background toegevoegd
JalalToufik Apr 24, 2023
a22c388
h1 toegevoegd
JalalToufik Apr 24, 2023
d93b185
Amsterdams-Sans font toegepast
JalalToufik Apr 24, 2023
4a0eb20
Merge pull request #11 from Stefan-Espant/Jalal
Stefan-Espant Apr 24, 2023
92b40da
v2.0
Apr 24, 2023
b403f67
font-family AmsterdamSans toegevoegd
JalalToufik Apr 24, 2023
ddba873
Merge pull request #12 from Stefan-Espant/Jalal
Stefan-Espant Apr 24, 2023
26be0aa
v2.1
Apr 24, 2023
33464bc
v2.2
Apr 24, 2023
c599aa0
v2.3
Apr 24, 2023
e6f88f2
v2.4
Apr 24, 2023
e42b4b5
v2.5
Apr 25, 2023
3078ab1
add
Apr 26, 2023
081201e
v2.5.1
Apr 26, 2023
75bead3
footer gemaakt
ArexanK Apr 26, 2023
6ceb5cd
background Responsive Images toegepast
JalalToufik Apr 26, 2023
f00da3c
Merge branch 'main' into Jalal
Stefan-Espant Apr 26, 2023
fdded34
Merge pull request #19 from Stefan-Espant/Jalal
Stefan-Espant Apr 26, 2023
c5e9999
v2.5.2
Apr 26, 2023
b329701
v2.5.3
Apr 26, 2023
899cec0
add
ArexanK Apr 26, 2023
17996a3
fix after merge
ArexanK Apr 26, 2023
089f4f2
Merge branch 'main' into item
Stefan-Espant Apr 26, 2023
3229a0f
add
ArexanK Apr 26, 2023
d83f712
footer in footer
ArexanK Apr 26, 2023
33116d0
media queries footer
ArexanK Apr 26, 2023
5f826aa
responsive
ArexanK Apr 26, 2023
413672c
Search-container in de header verplaatst
JalalToufik Apr 26, 2023
5f36bbe
Merge pull request #21 from Stefan-Espant/Jalal
Stefan-Espant Apr 26, 2023
8b8ed7c
test image
ArexanK Apr 26, 2023
3da7571
fix
Apr 26, 2023
51228ae
Merge branch 'main' into item
Stefan-Espant Apr 26, 2023
64eaad7
Merge pull request #23 from Stefan-Espant/item
Stefan-Espant Apr 26, 2023
76ebca0
Merge branch 'main' into footer
Stefan-Espant Apr 26, 2023
fa82a7c
Merge pull request #22 from Stefan-Espant/footer
Stefan-Espant Apr 26, 2023
12a8703
footer correctie
JalalToufik Apr 26, 2023
66dc1bd
Merge branch 'main' into Jalal
Stefan-Espant Apr 26, 2023
9918b4e
Merge pull request #24 from Stefan-Espant/Jalal
Stefan-Espant Apr 26, 2023
6bbb16f
Correctie code
JalalToufik May 2, 2023
f70ecac
main opbouw
JalalToufik May 2, 2023
b8118f1
correctie searchbar
JalalToufik May 2, 2023
1048498
correctie search bar
JalalToufik May 4, 2023
3c2f95e
Merge pull request #25 from Stefan-Espant/Jalal
Stefan-Espant May 4, 2023
31bc73b
initial commit
May 5, 2023
b5889a7
v2.5.4
May 5, 2023
ddf6d4a
Merge pull request #26 from Stefan-Espant/item
Stefan-Espant May 5, 2023
2d02524
v2.5.5
May 5, 2023
a9d2f70
Merge pull request #27 from Stefan-Espant/item
Stefan-Espant May 5, 2023
64495dc
v2.5.6
May 5, 2023
58cd571
Merge pull request #28 from Stefan-Espant/Jalal
Stefan-Espant May 5, 2023
6dc2fa8
Update package.json
Stefan-Espant May 5, 2023
d57e0ff
Delete vercel.json
Stefan-Espant May 5, 2023
ac896e1
Update package.json
Stefan-Espant May 5, 2023
e9dd536
v2.5.7.
May 5, 2023
ae67746
Merge branch 'main' into item
Stefan-Espant May 5, 2023
7cce83f
Merge pull request #29 from Stefan-Espant/item
Stefan-Espant May 5, 2023
4cdad20
v2.5.8
May 5, 2023
0591dd2
aanpassingen
ArexanK May 8, 2023
add59e6
remove div
ArexanK May 8, 2023
a55edf1
Merge branch 'main' into footer
Stefan-Espant May 8, 2023
de023d8
Merge pull request #32 from Stefan-Espant/footer
Stefan-Espant May 8, 2023
58a2fc2
v2.5.9
May 8, 2023
e2b2f43
slidebar progress
JalalToufik May 8, 2023
ae66677
Merge pull request #34 from Stefan-Espant/Jalal
Stefan-Espant May 8, 2023
ba73be1
Merge branch 'main' into item
Stefan-Espant May 8, 2023
eaaf115
Merge pull request #35 from Stefan-Espant/item
Stefan-Espant May 8, 2023
ffe7b86
Update package.json
Stefan-Espant May 8, 2023
632800f
Update package.json
Stefan-Espant May 8, 2023
0e53786
Update README.md
Stefan-Espant May 8, 2023
d388066
v3.0
May 8, 2023
f49c146
cursussen en activiteiten content toegevoegd
ArexanK May 8, 2023
c784d05
Merge branch 'main' of https://github.com/Stefan-Espant/performance-m…
ArexanK May 8, 2023
e11071c
slide bar progress
JalalToufik May 8, 2023
0360559
Merge branch 'main' into Jalal
JalalToufik May 8, 2023
cb82e85
Merge branch 'main' into item
May 8, 2023
3743674
v3.1
May 8, 2023
1d85118
v3.1
May 8, 2023
fe4dbf9
v3.2
May 8, 2023
09e83e0
Merge pull request #39 from Stefan-Espant/item
Stefan-Espant May 8, 2023
5008d13
slidebar process
JalalToufik May 8, 2023
9fdf16e
Merge branch 'main' into Jalal
JalalToufik May 8, 2023
ba15d5b
.
ArexanK May 8, 2023
271a25a
afbeelding uit api gehaald
JalalToufik May 8, 2023
2712c7e
.
ArexanK May 8, 2023
0169291
.
ArexanK May 8, 2023
9566c41
.
ArexanK May 8, 2023
7464a86
Merge pull request #41 from Stefan-Espant/Jalal
Stefan-Espant May 8, 2023
1a5b3c1
Merge pull request #40 from Stefan-Espant/Arexan
Stefan-Espant May 8, 2023
0cb9fc3
v3.2
May 8, 2023
0561e13
Merge branch 'main' into item
Stefan-Espant May 8, 2023
76d35b8
Merge pull request #42 from Stefan-Espant/item
Stefan-Espant May 8, 2023
51dd111
v3.3
May 8, 2023
d752604
Merge pull request #43 from Stefan-Espant/item
Stefan-Espant May 8, 2023
851ba9c
v3.4
May 9, 2023
d3eee24
v3.5
May 9, 2023
37671ea
v3.6
May 9, 2023
66fda7b
Update README.md
May 9, 2023
c457e2a
Merge branch 'item' into vestigingen
May 9, 2023
47db355
v3.7
May 9, 2023
c131a78
books perspective aangepast
JalalToufik May 9, 2023
94a53cc
Merge branch 'main' into Jalal
JalalToufik May 9, 2023
c04d67b
google icon linkj
JalalToufik May 9, 2023
ce3eb94
hover effect over de boeken
JalalToufik May 9, 2023
eb1f4d1
combo selectie met responsive images
JalalToufik May 9, 2023
d4fcb5a
v3.7.1
May 9, 2023
64e9013
tips van de oba img toegevoegd
JalalToufik May 9, 2023
8ea1544
input veld vergroot
JalalToufik May 9, 2023
5dc7eb2
Merge pull request #47 from Stefan-Espant/Jalal
Stefan-Espant May 10, 2023
afc6361
Merge pull request #50 from Stefan-Espant/vestigingen
Stefan-Espant May 10, 2023
e0c660c
v3.5.1
May 10, 2023
362fd01
v3.5.1
May 10, 2023
8dff6dc
Merge branch 'main' into item
Stefan-Espant May 10, 2023
fd8390c
Merge pull request #51 from Stefan-Espant/item
Stefan-Espant May 10, 2023
15c6b35
v3.5.2
May 10, 2023
dd3c8d1
Merge branch 'main' of https://github.com/Stefan-Espant/performance-m…
May 10, 2023
d6e49cb
over ons pagina
ArexanK May 10, 2023
575c4cc
Merge branch 'main' into Arexan
ArexanK May 10, 2023
58b7c94
responsive images
JalalToufik May 10, 2023
9a9bf5c
Merge pull request #53 from Stefan-Espant/Jalal
Stefan-Espant May 10, 2023
45f9f02
performance image verbeterd
JalalToufik May 10, 2023
48a7f05
Merge pull request #55 from Stefan-Espant/Jalal
Stefan-Espant May 10, 2023
6b22c2b
carousel img widht toegepast
JalalToufik May 10, 2023
e780bef
Merge pull request #56 from Stefan-Espant/Jalal
Stefan-Espant May 10, 2023
7802ba0
webp images
JalalToufik May 10, 2023
b5b8545
Merge pull request #57 from Stefan-Espant/Jalal
Stefan-Espant May 10, 2023
5e52be5
aanpassingen
ArexanK May 10, 2023
ae44f7c
v4.0
May 10, 2023
1acdb78
Merge pull request #58 from Stefan-Espant/item
Stefan-Espant May 10, 2023
1fc0c72
v4.1
May 10, 2023
3e3e28d
Merge pull request #59 from Stefan-Espant/item
Stefan-Espant May 10, 2023
45b8579
.
JalalToufik May 10, 2023
065386b
Merge branch 'main' into Jalal
JalalToufik May 10, 2023
48efb91
sourse set
JalalToufik May 10, 2023
712b711
v4.2
May 10, 2023
d91243f
Merge pull request #60 from Stefan-Espant/item
Stefan-Espant May 10, 2023
355e60d
responsive image met verschillende maten
JalalToufik May 10, 2023
abb9558
v4.3
May 10, 2023
f054915
Merge pull request #61 from Stefan-Espant/Jalal
Stefan-Espant May 10, 2023
ab02595
Merge pull request #62 from Stefan-Espant/item
Stefan-Espant May 10, 2023
7463c5d
Update .env
Stefan-Espant May 10, 2023
40a0e99
v4.3.1
May 10, 2023
5f61c98
Merge pull request #63 from Stefan-Espant/item
Stefan-Espant May 10, 2023
e4ba33f
v4.3.2
May 10, 2023
54a8437
Merge pull request #64 from Stefan-Espant/item
Stefan-Espant May 10, 2023
2288ead
carousel knoppen werken
JalalToufik May 10, 2023
e3fc5a5
v4.4
May 11, 2023
77cbcc2
Merge pull request #65 from Stefan-Espant/Jalal
Stefan-Espant May 11, 2023
b0b92f5
Merge pull request #66 from Stefan-Espant/item
Stefan-Espant May 11, 2023
1e7822d
.
ArexanK May 11, 2023
a53c7d3
v4.4.1
May 11, 2023
aba5e54
Merge branch 'main' into item
Stefan-Espant May 11, 2023
439a323
Merge pull request #68 from Stefan-Espant/item
Stefan-Espant May 11, 2023
5b9df42
Update README.md
ArexanK May 11, 2023
8c06112
Update README.md
Stefan-Espant May 11, 2023
76a6e48
Merge branch 'main' into Arexan
Stefan-Espant May 11, 2023
f1d09da
Merge pull request #67 from Stefan-Espant/Arexan
Stefan-Espant May 11, 2023
a530054
v4.4.2
May 11, 2023
e5101d5
Merge branch 'item' of https://github.com/Stefan-Espant/performance-m…
May 11, 2023
4043666
Merge pull request #69 from Stefan-Espant/item
Stefan-Espant May 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/node_modules
.env
84 changes: 65 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,79 @@
> _Fork_ deze leertaak en ga aan de slag. Onderstaande outline ga je gedurende deze taak in jouw eigen GitHub omgeving uitwerken. De instructie vind je in: [docs/INSTRUCTIONS.md](docs/INSTRUCTIONS.md)
# Performance Matters oba
![CD4C69B9-BB73-4A29-8DE4-C875DC73297C](https://user-images.githubusercontent.com/94745953/236788424-0f177e4b-6cfa-497b-bd35-d4d7246b428f.jpg)

# Titel
<!-- Geef je project een titel en schrijf in één zin wat het is -->
<img width="408" alt="logo-oba" src="https://user-images.githubusercontent.com/94745953/236790054-ef3dbbb0-634b-4ab1-a6fd-4059f59713a7.png">

## Inhoudsopgave
[Bezoek de oba site](https://uninterested-shirt-seal.cyclic.app/)

* [Beschrijving](#beschrijving)
* [Gebruik](#gebruik)
* [Kenmerken](#kenmerken)
* [Installatie](#installatie)
* [Bronnen](#bronnen)
* [Licentie](#licentie)

## Beschrijving
<!-- Bij Beschrijving staat kort beschreven wat voor project het is en wat je hebt gemaakt -->
<!-- Voeg een mooie poster visual toe 📸 -->
<!-- Voeg een link toe naar Github Pages 🌐-->
##📚 Inhoudsopgave

* 📝 [Beschrijving](#beschrijving)
* 🖇 [Gebruik](#gebruik)
* 🔖 [Kenmerken](#kenmerken)
* 📲 [Installatie](#installatie)
* 💾 [Bronnen](#bronnen)
* 📠 [Licentie](#licentie)


## 📝 Beschrijving
Als team hebben wij een responsive website gebouwd voor onze opdrachtgever Oba waarbij verschillende performance technieken zijn toegepast.
Wij hebben de website gebouwd met server- side code Node en gebruik gemaakt van de API om informatie op te halen zoals boeken, activiteiten en cursussen.
Voor de client side opmaak hebben wij gebruikt gemaakt van Ejs-HTML, CSS.

[Bezoek de oba site](https://uninterested-shirt-seal.cyclic.app/)

## 🖇 Gebruik

## Gebruik
<!-- Bij Gebruik staat de user story, hoe het werkt en wat je er mee kan. -->
Voor onze groepsopdracht hebben wij besloten om verschillende userstories te gebruiken.
Wij hebben gebruik gemaakt van een projectboard en daar alle userstories en issues beschreven.

Userstories:
- Als gebruiker wil ik makkelijk kunnen navigeren op alle devices
- Als ontwikkelaar wil ik een overzichtelijke stylegids kunnen openen om de huisstijl en het sfeer van Oba te begrijpen en ontwerptaal en ontwerpredenen te definiëren.
- Als gebruiker wil ik een boek/item reserveren
- Als gebruiker wil ik een studieplek reserveren

## 🔖 Kenmerken

## Kenmerken
<!-- Bij Kenmerken staat welke technieken zijn gebruikt en hoe. Wat is de HTML structuur? Wat zijn de belangrijkste dingen in CSS? Wat is er met JS gedaan en hoe? Misschien heb je iets met NodeJS gedaan, of heb je een framwork of library gebruikt? -->
Wij hebben gebruikt gemaakt van Node, Ejs-HTML en express, CSS en JavaScript.

Omdat deze leertaak over performace gaat hebben wij de onderstaande metrics aan onze website toegepast.
Voor client side performance:
- Assets optimization (responsive images by using modern image extensions zoals webP, Avif etc)
- Delivery optmization (lazy load for images)
- Build optimization

Voor server side performance:
- LCP (loading)
- FID (interaction)
- CLS (visual stability)

## 📲 Installatie

## Installatie
<!-- Bij Instalatie staat hoe een andere developer aan jouw repo kan werken -->
## NPM
Voordat wij aan dit project gingen werken hebben wij eerst NPM install gedaan omdat we met REST API en Databases gingen werken. Wanneer je npm install uitvoert, leest npm het package.json-bestand in de hoofdmap van je project, dat de afhankelijkheden voor het project vermeldt. Vervolgens downloadt en installeert het die afhankelijkheden in de node_modules map in het project. In de terminal van Visual Studio Code zijn er een aantal commando's voor gebruikt om het NPM init te initialiseren, installeren NPM install en testen met NPM start. In de map Node_Modules hebben wij Nodemon geactiveerd om bij iedere aanpassing die wij hebben opgeslagen in de server te laten verversen. Hiervoor gebruiken wij het commando NPM install Nodemon.

Express is een webframework voor Node.js dat wordt gebruikt voor het bouwen van webapplicaties en API's. EJS is een templating engine die wordt gebruikt voor het genereren van dynamische HTML-pagina's op basis van gegevens vanuit een server. In combinatie worden Express en EJS vaak gebruikt voor het bouwen van dynamische websites

## .gitignore en .env
Voor dit project hebben wij .env gebruikt omdat wij met echte data gingen werken. Om Api key te beschermen hebben wij een .env mapje aangemaakt en daar API key aangekoppeld. Api key van Oba is hierdoor beschermd. Door .env in de gitignore mapje te plaatsen gaat de API key niet mee naar github en is dit niet zichtbaar online.

## Progressive Enhancement
Om ervoor te zorgen dat iedereen toegang heeft tot het project, hebben wij de methode "progressive enhancement" gebruikt. Hierbij hebben we eerst de inhoud van de webpagina opgebouwd met behulp van HTML, geïntegreerd in EJS. Vervolgens heb ik functionaliteit toegevoegd door middel met de GET en POST-methode. Voor CSS hebben we diverse CSS-stijlen gebruikt om de website te stijlen in de huisstijl van OBA.


## 💾 Bronnen
- MDN documents
- Pagespeed insights
- Lighthouse
- Can i use
- DOC (instructions)

## Bronnen

## Licentie
## 📠 Licentie

This project is licensed under the terms of the [MIT license](./LICENSE).
283 changes: 283 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,283 @@
// Importeert basis modules uit npm
import express from "express";
import dotenv from "dotenv";
import bodyParser from 'body-parser';

dotenv.config();

// Maakt een nieuwe express app
const server = express();

// Stelt de public map in
server.use(express.static("public"));

// Stelt het poortnummer in waar express op gaat luisteren
server.set("port", process.env.PORT || 8000);

// Activeert het .env bestand
dotenv.config();

// Handelt de formulieren af
server.use(bodyParser.urlencoded({
extended: true
}));
server.use(bodyParser.json());

// Stel in hoe express gebruikt kan worden
server.set("view engine", "ejs");
server.set("views", "./views");

// Start express op, haal het ingestelde poortnummer op
server.listen(server.get("port"), function () {
// Toon een bericht in de console en geef het poortnummer door
console.log(
`Application started on http://localhost:${server.get(
"port"
)}`
);
});

// Extenties voor de URL
const space = "%20";
const bookItems = "boeken";

// Endpoints voor de URL
const urlSearch = "search/";

// Opbouw URL van de API
const urlBase = "https://zoeken.oba.nl/api/v1/";
const urlQuery = "?q=";
const urlDefault = "special:all";
const urlKey = `${process.env.KEY}`;
const urlOutput = "&refine=true&output=json";

// opbouw url activiteiten en Cursus
const activityURL =
urlBase +
"/search/?q=special:all%20table:activiteiten&authorization=" +
process.env.authorization +
"&output=json";
const courseURL =
urlBase +
"/search/?q=special:all%20table:jsonsrc&authorization=" +
process.env.authorization +
"&output=json";

const defaultUrl =
urlBase +
urlSearch +
urlQuery +
urlDefault +
space +
bookItems +
urlKey +
urlOutput;

// Maakt een route voor de index
server.get("/", (request, response) => {
fetchJson(defaultUrl).then((data) => {
response.render("index", data);
});
});

// Maakt een route voor de detailpagina
server.get("/item", async (request, response) => {
let uniqueQuery = "?id=";
let urlId = request.query.id || "";

const itemUrl =
urlBase +
urlSearch +
uniqueQuery +
urlId +
urlKey +
urlOutput;

const data = await fetch(itemUrl)
.then((response) => response.json())
.catch((err) => err);
response.render("item", data);
});

// Maakt een route voor de reguliere reserveringspagina
server.get("/reserveren", async (request, response) => {
const baseurl = "https://api.oba.fdnd.nl/api/v1";
const url = `${baseurl}/reserveringen`;

let uniqueQuery = "?id=";
let urlId = request.query.id || "|oba-catalogus|279240";

const itemUrl =
urlBase +
urlSearch +
uniqueQuery +
urlId +
urlKey +
urlOutput;

const data = await fetch(itemUrl)
.then((response) => response.json())
.catch((err) => err);
response.render("reserveren", data);

fetchJson(url).then((data) => {
response.render("reserveren", data);
});
});

// Verstuurt de data naar de API
server.post("/reserveren", (request, response) => {
const baseurl = "https://api.oba.fdnd.nl/api/v1";
const url = `${baseurl}/reserveringen`;

postJson(url, request.body).then((data) => {
let newReservering = { ... request.body }
console.log(newReservering);
if (data.id) {
response.redirect('/succes')
console.log("werkt!")


} else{
response.redirect('/succes')
}

});
});

// Maakt een route voor de studieplek reserveringspagina
server.get(
"/reserveer-een-studieplek",
(request, response) => {
const baseurl = "https://api.oba.fdnd.nl/api/v1";
const url = `${baseurl}/studieplekReserveringen`;

fetchJson(url).then((data) => {
response.render("reserveer-een-studieplek", data);
});
}
);

server.get("/succes", (request, response) => {
response.render("succes");
});

// Maakt een route voor de studieplek reserveringspagina om vestiging foto's in te laden
server.get(
"/reserveer-een-studieplek",
(request, response) => {
const baseurl = "https://api.oba.fdnd.nl/api/v1";
const url = `${baseurl}/vestigingen?clgnoumd6fttt0buw6rwa00pa`;

fetchJson(url).then((data) => {
response.render("reserveer-een-studieplek", data);
});
}
);

// Verstuurt de data van de studieplek naar de API
server.post(
"/reserveer-een-studieplek",
(request, response) => {
const baseurl = "https://api.oba.fdnd.nl/api/v1";
const url = `${baseurl}/studieplekReserveringen`;

postJson(url, request.body).then((data) => {
let newReservation = {
...request.body,
};

console.log(data);

if (data.success) {
response.redirect("/");
} else {
const errormessage = `${data.message}: Mogelijk komt dit door het id die al bestaat.`;
const newdata = {
error: errormessage,
values: newReservation,
};

response.render(
"reserveer-een-studieplek",
newdata
);
}

console.log(JSON.stringify(data.errors));
});
}
);

//Maakt een route voor de activiteiten pagina
server.get("/activiteiten", (request, response) => {
fetchJson(activityURL).then((data) => {
let dataClone = structuredClone(data);

if (request.query.titles) {
dataClone.results.titles =
dataClone.results.titles.filter(function (title) {
return results.titles.includes(
request.query.titles
);
});
}

response.render("activiteiten", dataClone);
});
});

// Maakt route voor de cursussen pagina
server.get("/cursussen", (request, response) => {
fetchJson(courseURL).then((data) => {
let dataClone = structuredClone(data);

if (request.query.titles) {
dataClone.results.titles =
dataClone.results.titles.filter(function (title) {
return results.titles.includes(
request.query.titles
);
});
}
response.render("cursussen", dataClone);
});
});

//Maakt route voor de Vestigingen pagina
server.get(
"/vestigingen",
(request, response) => {
const baseurl = "https://api.oba.fdnd.nl/api/v1";
const url = `${baseurl}/vestigingen`;

fetchJson(url).then((data) => {
response.render("vestigingen", data);
});
}
);


/**
* fetchJson() is a wrapper for the experimental node fetch api. It fetches the url
* passed as a parameter and returns the response body parsed through json.
* @param {*} url the api endpoint to address
* @returns the json response from the api endpoint
*/
export async function fetchJson(url, payload = {}) {
return await fetch(url, payload)
.then((response) => response.json())
.catch((error) => error);
}

export async function postJson(url, body) {
return await fetch(url, {
method: "post",
body: JSON.stringify(body),
headers: {
"Content-Type": "application/json",
},
})
.then((response) => response.json())
.catch((error) => error);
}
1 change: 1 addition & 0 deletions node_modules/.bin/cwebp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions node_modules/.bin/ejs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions node_modules/.bin/jake

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading