Inleiding
Als eindopdracht kreeg ik de kans om mijn eigen website te maken met alles die ik heb geleerd van frontend development stage bij go2people. Ik heb verschillende programmeertalen en frameworks geleerd zoals WordPress, SCSS, Javascript, PHP, Javascript, Timber en TWig. Nu kreeg ik de mogelijkheid om al die kennis te gebruiken. Voordat ik aan de eindversie te komen heb ik mezelf gepusht om een ontwerp proces te doorlopen. Door een idee te ontwikkelen naar een wekende klikbaar prototype. Dat proces kun je in deze pagina terug zien. Met de creativiteit ging ik aan de slag met de eindopdracht.
Wat is 4stagiairs?
4stagiairs de naam die ik heb bedacht voor mijn website.4stagiairs oftewel voor stagiairs. De reden voor die naam is omdat het lijkt als de naam van het bedrijf zelf. Er is een twee in go2people, dus ik dacht om de connectie te laten zien heb ik ook een cijfer toegevoegd aan de naam. 4stagiairs is een informatie website voor alle stagiairs die bij go2people stage gaat lopen. Het doel van deze website is informatie te bieden bijvoorbeeld stageopdrachten, administratieve zaken, informatie over de collega's en een overzicht van het stage traject bij go2people.
Functionaliteiten van het website
- Externe link naar alle interne tools
- Overzicht van alle stageopdrachten.
- Overzicht van artikelen waar over de HR zaken.
- Stagiairs pagina voor frontend, UX en Django stagiairs.
Beschrijving opdracht
Dit opdracht ga ik in mijn eigen woorden omschrijven. Voor opdracht 6 heb ik de taak een wordPress website te gaan bouwen zoals een developer bij go2people. Ik moet de website bouwen mt wordPress als de basis, SCSS, Bootstrap, Twig, Timber en javascript. Maar voordat ik ben begonnen moest ik verdiepen in wordPress en hoe wordPress website zijn ingebouwd. Nadat ik een beetje snap hoe allemaal werkte, ging ik verder lezen over Timber en Twig. Als toevoegingTerwijl ik aan het lezen was heb ik veel aantekening geschreven en in mijn logboek geplaatst. Als ik notities maakt onthoud ik de informatie beter. Wanneer ik klaar was met het lezen van de documentaties, gaf ik een seintje om echt te beginnen met het project
Doel van de opdracht
Het doel van de opdracht is om mij te laten ervaren, hoe ik als frontend developer moet werken bij go2people. De stage opdrachten hebben me geholpen om de programmeertalen te leren en toepassen. De eindproject was bedoeld om al de opgedaan vaardigheden en kennis te kunnen gebruiken.
Brainstormen voor Ideeën
Eerste fase van mijn ontwerp proces was ik aan het zoek naar verschillende ideeën die passend kon zijn voor de eindproject. Ik m=heb methodes gebruikt zoals schetsen en mindmap om mezelf te inspireren. Daarna heb ik een lijst gemaakt met de ideeën die de best vond. Ik ging mijn ideeën presenteren aan mij stagebegeleider en gaf mij feedback erover. Hieronder zijn de eerste ideeën die ik kon bedenken voor mijn eindopdracht.
- Kies je vegadag? Ee website waar je een ingredient kunt kiezen voor vegadag(dag waar je alleen vega kan eten. )
- Rebrand planning voor de planningsmeeting/of de standup
- Portfolio
- Een website voor stagiairs met overzicht van hun opdrachten
- Checklist voor stagiair
- Mood trackers dashboard van alle medewerkers
- Digitale logboek voor stagiaires
Uiteindelijk waren er twee ideeën die ik het beste vond: Kanban Bord voor stagiairs om hun taken te plannen of de website met alle informaties voor go2people stagiairs.
Idee 1: Stagiairs kanban bord
De eerste idee die ik had is een kanban bord voor stagiairs hun taken kunnen organiseren.Het interface is een soort van to do list waar stagiairs verschillende taken kunnen aanmaken en die kaarten plaatsen bij een van die status. De statussen zijn: to do, in progress en done. Wanneer de taak een andere status heeft kunnen ze die taak van de ene kolom verplaatsen door te slepen.
Functionaliteit voor de kanban Bord
- Gebruiker kunnen een nieuwe taak aanmaken
- Gebruiker kunnen de taak details geven zoals een titel, beschrijving en tags
- Het kanban bord bestaat uit drie statussen: To do, In progress en done
- Gebruiker kunnen de kaarten to do item, verplaatsen van status door te slepen
- Checklist voor stagiair
- Mood trackers dashboard van alle medewerkers
- Digitale logboek voor stagiaires
Idee 2: 4stagiairs - infopunt voor stagiairs
Het volgende idee die ik had is was website voor stagiairs die veel informatie biedt die behulpzaam zijn voor stagiairs. Op website kunnen stagiairs alle stageopdrachten bekijken. Er zijn ook informatieve artikelen over hoe je met bepaalde programma's kan werken. Als toevoeging heb je ook een teams overzicht met alle collega's en hun taken, zodat de stagiairs kan zien aan wie hun vragen kan stellen. Ik heb d Dus met andere woorden het is een medewerkers handboek voor stagiairs. Ik ben verder gegaan met dit idee.
Functionaliteit voor 4stagiairs
- Een homepagina met belangrijke info (hoe werkt de interne programma's enz. ) voor Nieuwe stagiairs
- Een aparte pagina per soorten stagiaire ingedeeld in drie categorieën. (frontend, UX, Django). Ik ga focussen op Frontend development stagiaires.
- Een pagina met al de stageopdrachten
- Een To do lijst voor stagiaires of Kanban bord om taken te bij te houden ook handen voor het maken van de stageverslag.
- Detailpagina voor stageopdrachten met uitgebreide uitleg van de stageopdracht en de benodigde bestanden die eventueel stagiaires kan ook toevoegen.
- Soorten stagiaires keuzes op het navigatiemenu.
Schetsen
Om mijn idee beter te visualiseren, heb ik verschillende schetsen gemaakt als onderdeel van mijn proces. Ik ben iemand die hou van schetsen maken. Met schetsen kan ik mijn idee beter presenteren. Sommige schetsen waren ook functionaliteiten die ik in gedachte had. Ik heb schetsen gemaakt voor de twee beste idee die ik heb gekozen. De kanban bord en de 4stagiairs informatie punt.
Schets voor de kanban bord
Voor de Kanban bord heb ik de interface geschets met wat interactie. In de schets heb ik een wireflow gemaakt met de volgorde van de pagina's. Zoals ik heb geleerd bij cmd heb ik ook annotaties gemaakt om de interactie te kunnen toelichten. Het idee is dat je eerst moet inloggen en dan kom je terecht bij de homepagina waar de kanban bord te vinden is. Dan heb ik geschets hoe je een taak kan het bord kan toevoegen.
Schets voor de 4stagiair website
De volgende schets was meer gedetailleerder. Hier heb ik meer webpagina's toegevoegd. Het begint namelijk met een laden scherm en je komt daarna op de homepagina terecht. Op de homepagina heb je een hero banner met daarop de naam van de website. Vervolgens heb je daaronder een carrousel met verschillende artikel en de thumbnails van de stageopdrachten. De volgende pagina is de overzichtspagina van de stageopdrachten en als je op een klikt kom je op de detailpagina van de stageopdrachten terecht.
Figma prototypes
Kanban Bord
Voor de kanban bord heb ik verschillende varianten gemaakt. Met Figma kon bekijken welke huisstijl ik wilde gebruiken voor mijn website. Voor mij was het ontwerp handig omdat dan weet ik ongeveer wat ik moet doen als ik het helemaal met code gaat bouwen. Voor de eerste versie heb ik per bord een button geplaatst waar je de een taak kan aanmaken. Voor de tweede versie heb ik de huisstijl aangepast naar roze kleurtinten. En ik heb ook een mobiele versie gemaakt om de te bepalen hoe ik de borden kan positioneren. Maar uiteindelijk ben ik tot hier gebleven met dit opdracht.
Feedback
- Ik moet niet de buttons op elke bord plaatsen
- Dit idee is een beetje overbodig omdat ik er is al een kanban bord die wordt gebruikt door de go2people team
Figma prototypes - 4stagiairs
4stagiairs
Ik heb verder mijn idee van het uitwerken en kwam tot een heel andere interface. Ik begon eerst met wireframes. Ik heb een wireframe gemaakt voor de homepagina, stagiairs pagina met de stageopdrachten en de detailpagina van de stageopdrachten. Met die wireframes kon ik bepalen waar ik bepaalde elementen kon plaatsen en welke type layout het beste zou zijn. Het website zelf id bedoeld om informatie te geven dus ik dacht een strakke grid zoals bij een nieuws website zou passend zijn.
Iteratie 1
Nadat de wireframes compleet waren ging ik aan de slag met de Figma prototypes, ik heb in totaal vier verschillende pagina;s gemaakt. De homepagina met allerlei artikelen, daarna de stagiairs pagina met de stageopdrachten voor stagiairs en als laatste de detailpagina met de uitleg van de opdrachten. Op basis van die vier pagina's heb ik verschillende varianten gemaakt. Als huisstijl heb ik blauwe tinten gebruikt, omdat het zag echt strak uit.
Iteratie 2
Bij de tweede iteratie van de prototypes heb ik wat meer content toegevoegd aan de thumbnails, maar ook heb ik de huisstijl aangepast naar de huisstijl van go2people. Ik wil laat zien dat het website een verband met go2people. Dit iteratie is dankzij de feedback die ik heb gekregen van de UX designer. Deze iteratie was niet moeilijk want ze waren dezelfde pagina's alleen de huisstijl moest aangepast worden naar de stijl van go2people. En nog wat kleine functionaliteiten
Homepagina's iteraties versie 1
Wat is er verandert?
- Carrousel neemt de hele breedte.
- Links naar verschillende bedrijfstaken (frontend, UX en Django)
- Overzicht met informatieve artikelen
- Overzicht van teamleden
Homepagina's iteraties versie 2
Wat is verandert?
- Carrousel slides overlapt elkaar
Homepagina's iteraties versie 3
Wat is er verandert?
- Carrousel slides overlapt elkaar
- Links naar verschillende bedrijfstaken (frontend, UX en Django)
- Links naar verschillende bedrijfstaken (frontend, UX en Django) is verborgen
- Overzicht met informatieve artikelen
- Overzicht van alle teamleden met dynamische content
Frontend stagiairs pagina iteraties versie 1
Wat is er verandert?
- De werkwijze word cloud helemaal bij de hero zijn niet helemaal gecentreerd.
- Buttons die je stuurt naar de detailpagina van de stageopdrachten staat onderaan bij elk thumbnail
- Links naar verschillende bedrijfstaken (frontend, UX en Django) is verborgen
- De code richtlijnen hebben niet hetzelfde breedte
Frontend stagiairs pagina iteraties versie 2
Wat is er verandert?
- De werkwijze word cloud helemaal bij de hero is beter gecentreerd.
- De code richtlijnen hebben nu allemaal een vaste breedte
Frontend stagiairs pagina iteraties versie 3
Wat is er verandert?
- Nieuwe huisstijl toegepast
- Buttons die je stuurt naar de detailpagina van de stageopdrachten staat verborgen en wordt alleen zichtbaar bij de hover
- De code richtlijnen/code agreements hebben nu allemaal alleen een rand in plaats van achtergrond kleur
- Het carrousel met stagiairs voorbeelden, een is gelokt. De slide wordt beschikbaar wanneer het stagiair de opdracht head voltooid.
- De footer heeft meer informatie gekregen o.a het adres van go2people, externe links naar de programma's en email van belangrijk personen voor de stagiairs
Stageopdracht detailpagina iteraties versie 1
Wat is er verandert?
- Er is een sectie waar je kan zien welke programmeertaal heb je nog nodig.
- Staat een link naar de Figma bestand die je nodig hebt voor de stageopdracht
- Overzicht van collega die het stageopdracht begeleiden
- Het carrousel met stagiairs voorbeelden, een is gelokt. De slide wordt beschikbaar wanneer het stagiair de opdracht head voltooid.
- De footer heeft meer informatie gekregen o.a het adres van go2people, externe links naar de programma's en email van belangrijk personen voor de stagiairs
Stageopdracht detailpagina iteraties versie 2
Wat is er verandert?
- Nieuwe huisstijl toegevoegd.
Stageopdracht detailpagina iteraties versie 3
Wat is er verandert?
- Figma bestand link is een andere positie gekregen.
- Overzicht van collega die het stageopdracht begeleiden staat onder de Figma link
- Het carrousel is in de detailpagina in plaats van de stagiairs pagina. Het carrousel met stagiairs voorbeelden, een is gelokt. De slide wordt beschikbaar wanneer het stagiair de opdracht head voltooid.
Feedback
Feedback op Figma prototype
Wanneer ik klaar was met de prototypes heb ik mijn werk aan de begeleider gepresenteerd en hij gaf me wat feedback die ik moest rekening houden als frontend developer. Hij zij dat wordPress best wel dynamisch is dus ik moet de pagina componenten wat flexibele.
Vragen die belangrijk zijn om erover nat te denken bij frontend
- Wat gebeurt er als de titel van de artikel heel lang is?
- Hoe zorg je ervoor dat de afbeelding scherp blijven?
- Hoe ziet de functionaliteit op kleine schermen?
- Wat gebeurd er als er bepaalde functionaliteit niet doet? is er een fallback? Denk aan feature detection, fonts, enzovoorts
Bouwen met code
Setup
Wanneer ik klaar was met het prototype op Figma en die goedgekeurd was door de stagebegeleider kon ik beginnen met bouwen van de website. Om te beginnen heeft de backend developer gezorgd dat ik toegang kon krijgen naar de server. De server moest ik via de terminal opstarten. heb ik toegang gekregen naar de server. Ook word via de server de scss omgezet naar css.
Welke programmeertaal heb ik gebruikt?
- HTML
- SCSS
- Javascript
- Fontawesome iconen set
- SwiperJs
- Timber
- Twig
- WordPress CMS
- Bootstrap
Uitleg over het bestand structuur
Nadat ik toegang kreeg naar de sever. Mijn stagebegeleider liet me zien hoe je een project lokaal vanuit de server downloaden. Ik moest het bestand map stagiairs. Het is een lege standaard template voor stagiairs met een klaar gemaakte bestand structuur. Mijn begeleider licht te toe wat al de bestanden waren en hoe ik aan de slag kon gaan. Hij liet me zien hoe je Gutenberg block moeten maken die ik via de wordPress editor kan toevoegen. Gutenberg zijn stukje content dat je kan herhalen over de hele pagina.
Bestanden waar ik meestal in werkte
- register.php : Waar je Gutenberg block kunnen aanmelden
- callback.php : Functies waar je data op kan halen voor de Gutenberg block
- Function.php: Het bevat PHP-code die de functionaliteit van het thema aanpast of uitbreidt
- template.twig : Twig bestanden waar ik data kan weergeven op HTML
- SCSS bestanden : Om het website te vormgeven
PHP
TWIG
SCSS
Javascript
Timber
Functionaliteiten en uitwerking
Carrousel met uitgelichte artikelen
Het carrousel is te vinden bij de homepagina van stagiairs helemaal bovenaan. Het is een slideshow met verschillende artikelen dat je kan kiezen vanuit wordPress kan kiezen. Op wordPress heb je de mogelijkheid om zelf content te schrijven want het is een content management systeem. De geschreven content heb ik door middel van code weergeven op de pagina. Daarbij heb ik een wordPress plugin gebruikt om zelf je eigen posts te kunnen kiezen die je wil laten zien in de carrousel.
Carrousel als Gutenberg blok
Het carrousel is een Gutenberg blok, dit betekent je in de wordPress text editor als stukje content kan toevoegen overal op de site. Daarvoor moest ik eerst de blok registreren in register.php en de juiste bestanden en bibliotheken toevoegen om het te laten werken. Voor de slideshow heb ik swiperJs gebruikt, wat ik bij de eerdere stageopdrachten heb geleerd. Wanneer de registreert was heb ik de twig en de scss bestand gemaakt waar ik de html en de css zou toevoegen.
Hier is de code om de acf blok te registreren
acf_register_block([
'name' => 'featured-posts-slider',
'title' => __('Uitgelichte post slider'),
'description' => __('Carrousel van uitgelichte post voor stagiairs'),
'render_callback' => __NAMESPACE__ . '\\gutenberg_featured_posts_slider',
'category' => 'g2p',
'icon' => 'slides',
'keywords' => ['artikelen', 'posts', 'uitgelichte', 'slider', 'carrousel'],
'enqueue_assets' => function(){
if( !is_admin() ) {
wp_enqueue_script('swiper', get_template_directory_uri() . '/static/addons/swiper/swiper-bundle.min.js', '',HEME_VERSION, true);
wp_enqueue_style('swiper', get_template_directory_uri() . '/static/addons/swiper/swiper-bundle.min. css', '', THEME_VERSION, 'all');
wp_enqueue_script('g2p-featured-posts-slider', get_template_directory_uri() .
'/static/js/gutenberg/featured-posts-slider.js', '', THEME_VERSION, true);
wp_enqueue_style('g2p-featured-posts-slider', get_template_directory_uri() .
'/static/css/gutenberg/featured-posts-slider.css', '', THEME_VERSION, 'all');
}
},
]);
ACF veld aanmaken zodat je zelf post kan kiezen voor het carrousel
WordPress is een eenvoudige CMS waar je zonder enige technische kennis je website kan beheren. IK heb dit ook bereiken voor mijn eigen website als iemand anders dit zou gebruiken. Ik heb met acf plugin ervoor gezorgd dat de gebruikers meer controle heeft op de content. Dus ik heb ervoor gekozen dat je zelf artikelen kon kiezen voor het carrousel.
Acf
function gutenberg_featured_posts_slider( $block, $content = '', $is_preview = false ){
// underscores (_) are automatically replaced by minus (-)
$template = explode('/', $block['name'])[1];
$context = Timber::context();
// Store block values.
$context['block'] = $block;
// Store field values.
$context['fields'] = get_fields();
// Store $is_preview value;
$context['is_preview'] = $is_preview;
// get selected posts
$context['posts'] = Timber::get_posts([
'post_type' => 'post',
'orderby' => 'post__in',
'post__in' => $context['fields']['selected_posts'],
'posts_per_page' => -1
]);
Timber::render(['gutenberg/' . $template . '.twig'], $context );
}
SwiperJs voor carrousel
Voor het vormgeven van het carrousel heb ik gebruikt gemaakt van het slideshow library swiperJs en verschillende functionaliteiten te kunnen toevoegen. Hiermee was het mogelijk om het elke slides op elkaar overlappen. Als je op de carrousel hover schuift de witte vakje naar boven en het link naar een artikel of externe bron wordt zichtbaar. Ik heb dit micro-interacties voor alle artikelen binnen de site
Javascript
const swiper = new Swiper(".swiper", {
// Optional parameters
direction: "horizontal",
loop: true,
centeredSlides: true,
grabCursor: true,
effect: "coverflow",
coverflowEffect: {
rotate: 0,
stretch: 0,
depth: 100,
modifier: 3,
slideShadows: true
},
breakpoints: {
576: {
slidesPerView: 1
},
992: {
slidesPerView: 2
},
1440: {
slidesPerView: 2
}
},
//Use arrow keys to navigate slider
keyboard: {
enabled: true
},
// If we need pagination
pagination: {
el: ".swiper-pagination",
clickable: true
},
// Navigation arrows
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
}
});
HTML van de Carrousel gutenberg blok
De HTML heb ik geschreven met twig hiermee kan ik de data vanuit wordPress weergeven. Het structuur heb ik gebruikt vanuit de library van swiperJs en ik heb een paar van de css opmaak overschreven met mijn eigen huisstijl
Go2people team overzicht
Het volgende functionaliteit waarmee ik heel trots ben is van de overzicht van alle collega die werken bij go2people. Dit stuk is ook een gutenberg blok waarvan je op elke plek op de website te plaatsen als je met wordPress gaat spelen. Dit functionaliteit heb ik gemaakt voor stagiairs die moeite hebben om vragen te stellen (zoals ik), maar ook voor mensen die in het begin niet weet naar wie ze moet gaan om hun vraag te stellen.
Wat kun je zien per collega's
- Een foto
- Links naar contact gegevens (discord en email)
- Bedrijfsfunctie
- Hun taken en/of expertise
Nieuwe collega's toevoegen in wordPress
Het is ook mogelijk om collega's in wordpress in de backend toevoegen en verwijderen. De content wordt dan automatische aangepast.
Code Ophalen in PHP
PHP code logica
function gutenberg_team_members( $block, $content = '', $is_preview = false ){
// underscores (_) are automatically replaced by minus (-)
$template = explode('/', $block['name'])[1];
$context = Timber::context();
// Store block values.
$context['block'] = $block;
// Store field values.
$context['fields'] = get_fields();
// Store $is_preview value;
$context['is_preview'] = $is_preview;
// Additional code for displaying all members or team members per expertise
$tax_query = [];
if ($context['fields']['type'] == 'expertise') {
$tax_query = [
'relation' => 'OR',
[
'taxonomy' => 'expertise',
'field' => 'slug',
'terms' => (!empty($context['fields']['expertise_tax'])) ? $context['fields']['expertise_tax'] : null,
],
[
'taxonomy' => 'responsibility',
'field' => 'slug',
'terms' => (!empty($context['fields']['responsibility_tax'])) ? $context['fields']['responsibility_tax'] : null,
],
];
}
$member_args = [
'post_type' => 'team',
'posts_per_page' => -1,
'post_status' => 'publish',
'tax_query' => $tax_query,
];
$context['team_members'] = new PostQuery($member_args);
// Render the block.
Timber::render(['gutenberg/' . $template . '.twig'], $context);
}
Scss Opmaak
SCSS
@import '../helpers/variables';
@import '../helpers/mixins';
@import '../helpers/functions';
.block-team-members {
gap: 1.5rem;
color: color(text);
padding: 2.5rem;
ul {
padding: 0;
row-gap: 3rem;
}
.member {
height: 100%;
@include border-radius($border-radius-medium);
@include box-shadow($box-shadow);
padding: 0;
position: relative;
.member-content {
padding: 3rem;
position: relative;
h2 {
margin: 0;
font-size: 3rem;
}
.responsibility-list {
margin:1.5rem 0 1.5rem 1rem;
li {
list-style: none;
font-size: 1.7rem;
position: relative;
padding-left: 2rem;
&::before {
content: "\2022";
position: absolute;
left: 0;
top: 0;
font-weight: bold;
display: inline-block;
width: 1rem;
color: color(primary);
margin: 0 .5rem 0 0;
}
}
}
}
}
}
.contact-icon {
position: absolute;
width: 100%;
display: flex;
gap: 1.5rem;
@include transform(translateY(-6rem));
left: 1rem;
a {
position: relative;
display: block;
.label-on-hover {
opacity: 0;
background: color(primary);
color: color(background-light);
padding: 2rem 1.5rem;
@include border-radius(0.5rem);
@include box-shadow($box-shadow);
font-size: 1.6rem;
position: absolute;
text-align: center;
top: -8rem;
transition: 0.3s ease-in-out all;
&::after {
content: "";
background: color(primary);
@include border-radius(50%);
@include transform(translateY(.2rem));
position: absolute;
left: 1.9rem;
width: 1rem;
height: 1rem;
}
}
&:hover {
.label-on-hover {
opacity: 1;
}
i {
@include transform(scale(1));
@include animation(shake 0.2s both alternate infinite ease-in-out);
transform-origin: center center;
}
}
}
}
@keyframes shake {
0% {
transform: rotate(-15deg);
}
100% {
transform: scale(1.1) rotate(15deg);
}
}
//responsive
@include respond-to(from-sm) {
.label-on-hover {
&::after {
@include transform(translateX(-8rem));
margin-left: -1rem;
position: absolute;
top: 100%;
left: 50%;
}
}
}
Stagiairs pagina
De stagiairs pagina is verdeeld in drie categorieën. Het categorie wordt bedrijfstak genoemd. Bij go2people heb je drie bedrijfstak voor stagiairs. Die zijn frontend development, UX-design en Django Development. Om het haalbaar te maken heb ik de frontend development pagina uitgewerkt.
Functionaliteiten op stagiairs pagina
- Staat een titel met de naam van de type bedrijfstak
- Een overzicht van de werkwijze die ze van het stagiairs verwachten
- Dan heb je een onderdeel van bronnen die je kan gebruiken voor je stageopdrachten
- Je bevind alle stageopdrachten per bedrijfstak (frontend, UX en Django )
- Je ziet de code richtlijnen, best practices en regels die je in je werk terug moeten laten zien
- Voorbeelden van stagiairs waarmee je inspiratie kan opdoen
Dynamisch content met ACF
Ik heb gebruikt gemaakt van de acf wordPress plugin om content op een dynamische manier te kunne invoeren. Dus de persoon die content wil toevoegen moet alleen velden invullen. In ACf heb ik verschillende velden gemaakt waarmee je kan bepalen welke werkwijze en code richtlijnen je wilt toevoegen, maar je kan ook link en toevoegen. In de code heb ik dan data vormgegeven.
Code Ophalen in PHP
Php logica
$context = Timber::context();
$context['post'] = Timber::query_post();
$context['fields'] = get_fields($context['post']->ID);
$context['programming_languages_tax'] = get_the_terms($context['post']->ID, 'learnings');
$context['methods_tax'] = get_the_terms($context['post']->ID, 'method');
$context['team_members'] = get_field('selected_team_members');
Stageopdrachten
Verder heb je heeft de stagiair de mogelijkheden om hun stageopdrachten te bekijken via de website. In de stagiairs pagina heb je overzicht van alle stage opdrachten die de stagiair zou krijgen tijdens zijn stage. Als je op de thumbnails hover kun je de category van de opdrachten bekijken, de category noem je taxonomy elk post op wordPress heb een. Dus je iet welke programmeertaal je gaat leren bij de opdracht. Daarnaast krijg je ook een link om de detailpagina van de stage opdracht als de stagiair het uitleg van de opdracht te lezen
Functionaliteit op de stageopdracht detailpagina
- Staat een titel met de naam stageopdracht en beschrijving in een zin waarover het gaat
- De programmeertalen die je gaat leren bij de opdracht
- Een lijst met wat je nodig hebt om de opdracht te kunnen doen
- Uitleg van de stageopdracht
- Overzicht van collega die de opdracht begeleiden en wie stagiair naar toe moet gaan voor vragen
- Een link naar Figma voor voor het bestuderen van de prototypes
- Formulier waar je je stageopdrachten kan inleveren (security risk)
Code die ik heb gebruikt om de stageopdrachten uit de wordPress op te halen
PHP code logica
$context = Timber::context();
$context['post'] = Timber::query_post();
$context['fields'] = get_fields();
$context['external_links'] = $context['fields']['external_links'];
$args = [
'post_type' => 'opdracht',
'orderby' => 'name',
'order' => 'ASC',
'posts_per_page' => -1,
'tax_query' => [
[
'taxonomy' => 'service-line',
'field' => 'term_id',
'terms' => (int)$context['fields']['type_serviceline'],
]
]
];
//$context['assignments'] = Timber::get_posts($args);
$context['assignments'] = new PostQuery($args);
foreach ($context['assignments'] as $assignment) {
$learnings_terms = [
'learnings' => [],
];
foreach ($assignment->terms as $term) {
if ($term->taxonomy === 'learnings') {
$learnings_terms['learnings'][] = $term->name;
}
}
$assignment->terms = $learnings_terms;
}
Scss Opmaak voor de stageopdrachten
SCSS
.card {
display: inline-block;
overflow: hidden;
width: 100%;
background: color(background-light);
@include border-radius($border-radius-medium);
@include box-shadow($box-shadow);
position: relative;
.card-content {
position: absolute;
background: color(background-light);
@include transition($transition);
bottom: 0;
width: 100%;
padding: 1.6rem;
h2 {
width: 100%;
height: 5.5rem;
}
}
.thumbnail {
width: 100%;
height: 100%;
img {
width: 100%;
height: 100%;
object-fit: cover;
@include transition(all 0.5s ease-in-out);
}
}
}
Wat heb ik geleerd?
Met dit eindproject kon ik veel leren. Ik heb een heel ontwerpproces meegemaakt waar ik een idee kon omzetten naar een volledige wordPress website. Ik heb me nieuwe kennis kunnen gebruiken voor een goede doel bij go2people maar ook voor toekomstige stagiairs die bij go2people komen.
Ik heb nieuwe vaardigheden van de eerdere stageopdracht goed toepassen aan mijn eindproject. Daarna ben ik wat beter geworden met Figma door al de iteraties die ik heb gemaakt. Als laatste kon ik samen met collega's kunnen werken, door actief feedback vragen om mijn werk te verbeteren
Bovendien kon dieper gaan in wordPress. WordPress is meer dan alleen content vullen je kan ook heel veel dingen mee doen, als je de technische kennis heb. Ik heb veel kunnen leren hoe je wordPress website in elkaar moet zetten, hoe je ervoor zorg dat je ontwerp ruimte geeft voor dynamische content.
Kernpunten
- WordPress gebruikt om een website te bouwen
- Concept bedenken en Figma prototype gemaakt
- PHP, Timber, SCSS en gebruikt om de website bouwen
- Geleerd over de werking van wordPress
- Figma ontwerp prototypes gemaakt
- Idee visualiseren met ideegeneratie methodes
- Prototypes itereren met feedback