Een universiteit wil een eenvoudige online applicatie waar studenten zich kunnen registreren en inloggen om workshops bij te wonen, zoals trainingen, lezingen en sportactiviteiten. De applicatie moet de volgende functionaliteiten bieden:
- Beheerders kunnen workshops aanmaken, bewerken en verwijderen.
- Ingelogde studenten kunnen workshops bekijken, zich inschrijven en hun eigen inschrijvingen beheren.
- De applicatie moet een afgeschermd dashboard bieden voor ingelogde gebruikers, waar studenten hun inschrijvingen en beheerders alle workshops kunnen beheren.
- Users - Voor het opslaan van studenten- en beheerdersgegevens.
- Velden:
id
,name
,email
,password
,role
(bijv. 'admin' of 'student')
- Velden:
- Workshops - Voor het opslaan van de workshops die door de universiteit worden georganiseerd.
- Velden:
id
,title
,description
,date
,location
,capacity
,created_at
,updated_at
- Velden:
- Registrations - Voor het bijhouden van studentregistraties voor workshops.
- Velden:
id
,user_id
,workshop_id
,registered_at
- Velden:
- Workshopbeheer met CRUD: De deelnemer implementeert een volledig CRUD-systeem voor workshops met behulp van een resource controller in Laravel. Dit beheergedeelte moet alleen toegankelijk zijn voor gebruikers met de rol admin.
- Inschrijvingen met Livewire: De deelnemer maakt een Livewire-component waarmee studenten zich kunnen inschrijven voor workshops. Dit zorgt voor een dynamische gebruikerservaring zonder paginavernieuwing.
- Authenticatie en Rollenbeheer: De deelnemer implementeert een inlogsysteem waarmee gebruikers zich kunnen aanmelden als student of admin. Afhankelijk van de rol worden zij doorverwezen naar de juiste secties van de applicatie.
- Validatie van Invoer: De deelnemer past standaard Laravel-validaties toe om invoer correct te controleren en te valideren voordat deze wordt opgeslagen.
- Succes- en Foutmeldingen: De deelnemer zorgt ervoor dat gebruikers duidelijke feedback ontvangen via succes- en foutmeldingen bij acties zoals inloggen, inschrijven of bewerken van gegevens.
- CRUD-functionaliteit: De student leert hoe je basis-CRUD-operaties implementeert voor workshops en registraties. (admin)
- Authenticatie en autorisatie: De student past authenticatie toe om toegang te beperken tot afgeschermde pagina’s en gebruikt rollen (bijv. admin/student) voor autorisatie.
- Livewire-componenten: De student gebruikt Livewire om interactieve, dynamische functionaliteiten te implementeren. De student laat hierbij zien dat het inschrijven op een workshop via een livewire component gaat. (student)
- Relaties tussen tabellen: De student leert hoe hij relaties (bijv.
hasMany
,belongsTo
) implementeert tussen gebruikers, workshops, en registraties.
Volg deze stappen om het project te klonen en lokaal op te zetten:
-
Kloon het project vanaf GitHub:
git clone <repository-url> cd <repository-name>
-
Installeer vereiste pakketten met Composer:
composer install
-
Maak een
.env
bestand:- Dupliceer het
.env.example
bestand naar.env
: copy .env.example .env - Pas de
.env
instellingen aan, zoals databaseconfiguratie, en vul eenAPP_KEY
in.
- Dupliceer het
-
Genereer een app-sleutel:
php artisan key:generate
-
Voer de migraties en seeder uit:
php artisan migrate php artisan db:seed
-
Start de Laravel server:
php artisan serve
-
Open het project in je browser:
- Ga naar
http://localhost:8000
om de applicatie te bekijken.
- Ga naar
Nu ben je klaar om te beginnen met het gebruik van de applicatie en het implementeren van de vereiste functionaliteiten.