Sprint 13: week 1
Sep 02 2024
Dit is mijn learning journal van week 1 van sprint 13
Repo: https://github.com/Hadil66/your-tribe-for-life-squad-page
Projectboard: https://github.com/Hadil66/your-tribe-for-life-squad-page/projects?query=is%3Aopen
02.09
Start van project squad page!
Leervragen
- Hoe kan ik data uit een cms combineren met een framework?
- Hoe zet je een project met een framework op?
- Hoe kies je de juiste frameworks en tools voor elk project?
- Iets met samenwerken in github met grotere groep ? conventies, afspraken, etc etc
- Hoe kan ik mijn learning journal het best bijhouden/inrichten? Wat werkt voor mij het best?
- Hoe kan ik het mentoring van jaar 1 gebruiken om mij zelf verder te ontwikkelen?
Squad page
Doel:
- Je leert effectiever samenwerken met het projectboard in GitHub
- Je leert hoe je routing met een framework implementeert
- Je leert hoe je data uit een Headless CMS door middel van framework rendert in een website
DLC
- Analyseren - bijvoorbeeld: grip krijgen op een taak door gesprekken met een opdrachtgever, schrijven van een debriefing, maken van een todo lijst, inventarisatie van bestaande informatie, overzicht creëren, plannen, definition of done etc.
- Ontwerpen - bijvoorbeeld: het maken van idee-schetsen, customer journey, breakdown chart, wireflows, navigatiestructuur en layout.
- Bouwen - bijvoorbeeld: toepassen van webtechnologie (HTML, CSS, JS), gebruik van tooling, werken volgens conventies en wetgeving, documenteren en bijhouden van een changelog.
- Integreren - bijvoorbeeld: publiceren, live zetten, uploaden naar de server, toevoegen in een bestaand systeem, ftp-en.
- Testen - bijvoorbeeld: Unit testing (TDD), System test, User test, device lab test, A\B testing.
Directus en Sveltekit
huiswerk: Directus.docs
proberen aan te passen
- terminal
om geen nieuwe map te maken doe je ” ./ ” of leeg ipv ” my-app ”
npm create svelte@latest my-app # Choose Skeleton project
cd frontend
npm install
npm install @directus/sdk
![[Screenshot 2024-09-03 at 13.23.33.png]]
2. Create a wrapper for the SDK
SDK = software development kit
src/libs directus.js
import { createDirectus, rest } from "@directus/sdk";
import {
readItems,
readItem,
updateItem,
updateUser,
createItem,
deleteItem,
} from "@directus/sdk";
import { PUBLIC_APIURL } from "$env/static/public";
function getDirectusInstance(fetch) {
const options = fetch ? { globals: { fetch } } : {};
const directus = createDirectus(PUBLIC_APIURL, options).with(rest());
return directus;
}
export default getDirectusInstance;
src/ hooks.server.js
export async function handle({ event, resolve }) {
return await resolve(event, {
filterSerializedResponseHeaders: (key, value) => {
return key.toLowerCase() === "content-type";
},
});
}
.env
PUBLIC_APIURL = "https://directus.example.com";
3. Prepare Sveltekit to use Directus
Create a new file called +page.js
in the root directory next to the .page.svelte
file. This file’s load function will be responsible to fetch the data on the client and on the server during Server Side Rendering.
+page.js
/** @type {import('./$types').PageLoad} */
import getDirectusInstance from "$lib/directus";
import { readItems } from "@directus/sdk";
export async function load({ fetch }) {
const directus = getDirectusInstance(fetch);
return {
global: await directus.request(readItems("global")),
};
}
+page.svelte
<script>
/** @type {import('./$types').PageData} */
export let data;
</script>
<h1>{data.global.title}</h1>
<p>{data.global.description}</p>
04.09
Demo
vite = package manager
svelte.config.js - vercel gegevens om te hosten toevoegen
npm run build genereert jouw website compiled in een build mapje (zoiets)
static = map met statische dingen, is net zoals de node/ejs public map. dingen als favicon, en global.css
src = hier word alles wat svelte doet gerenderd
src/app.html = schil van de applicatie, hier link je de global stylesheet en andere dingen uit de static map.
src/routes = de pagina’s/routes
src/lib = componenten, herbruikbare delen
+page.svelte = component waar alles samen komt, js, html, en css.
+page.server.js = hier word data gefetcht
export let data = haalt informatie op
nieuwe route: maak mapje met naam van route (contact, about, etc), voeg hier +page.svelte aan toe. klaar.
dynamische route: naam route tussen [ blokhaken ]
from scratch
whois: https://fdnd.directus.app/items/person/
demo: https://github.com/joostf/squadpage-sveltekit/tree/main
06.09
lighthouse test
? directus nextgen image formats webp and avif ??
<picture class="cover-image">
<source
srcset="https://fdnd-agency.directus.app/assets/<%= playlist.image %>?width=200&height=200&format=avif"
type="image/avif"
alt="cover image"
/>
<source
srcset="https://fdnd-agency.directus.app/assets/<%= playlist.image %>?width=200&height=200&format=webp"
type="image/webp"
alt="cover image"
/>
<img
src="https://fdnd-agency.directus.app/assets/<%= playlist.image %>?width=200&height=200"
alt="playlist cover image"
/>
</picture>