Dit project is een vacatureplatform gebouwd met Laravel als backend. Het doel is om vacatures vanuit een CSV-bestand in te laden en deze te koppelen aan profielen met harde en zachte skills. Door middel van een flexibele profieltabel en koppeltabellen kunnen werkgevers eenvoudig vacatures aanmaken en kandidaten koppelen aan een profiel dat aansluit bij de gevraagde vaardigheden.
De applicatie dient als portfolio-project en toont vaardigheden in:
- Relationale databases ontwerpen en gebruiken
- CSV-data importeren en normaliseren
- Backend logica ontwikkelen met Laravel
- CRUD-functionaliteiten implementeren
- Documentatie en planning (agile/scrum)
- Vacatures inladen via CSV-bestand
- CRUD-functionaliteit voor vacatures
- CRUD-functionaliteit voor profielen
- CRUD-functionaliteit voor harde en zachte skills
- Mogelijkheid voor vacaturemakers om nieuwe skills toe te voegen
- Profieltabel die meerdere skills kan bevatten (veel-op-veel-relatie)
- Zoeken en filteren van vacatures op basis van profiel
- Relaties via koppeltabellen (
profiel_softenprofiel_hard)
-
vacatures
- id (PK)
- titel
- beschrijving
- profiel_id (FK → profielen.id)
-
profielen
- id (PK)
- naam (optioneel, voor herkenbaarheid)
-
softskills
- id (PK)
- naam (UNIQUE)
-
hardskills
- id (PK)
- naam (UNIQUE)
-
profiel_soft (koppeltabel)
- id (PK)
- profiel_id (FK → profielen.id)
- softskill_id (FK → softskills.id)
-
profiel_hard (koppeltabel)
- id (PK)
- profiel_id (FK → profielen.id)
- hardskill_id (FK → hardskills.id)
- Vacature ↔ Profiel: veel-op-1 (een vacature hoort bij 1 profiel, maar een profiel kan bij meerdere vacatures horen)
- Profiel ↔ Hardskills: veel-op-veel via
profiel_hard - Profiel ↔ Softskills: veel-op-veel via
profiel_soft
- Als vacaturemaker wil ik vacatures kunnen aanmaken zodat ik deze zichtbaar kan maken voor kandidaten.
- Als vacaturemaker wil ik bestaande vacatures kunnen bewerken zodat ik fouten kan corrigeren of de inhoud kan aanpassen.
- Als vacaturemaker wil ik vacatures kunnen verwijderen zodat ik oude of irrelevante vacatures kan verwijderen.
- Als vacaturemaker wil ik nieuwe softskills en hardskills kunnen toevoegen zodat ik altijd actuele vaardigheden kan meenemen.
- Als beheerder wil ik alle profielen kunnen bekijken zodat ik overzicht heb van welke profielen gekoppeld zijn aan vacatures.
- Als beheerder wil ik profielen kunnen bewerken zodat ik skills kan updaten of corrigeren.
- Als beheerder wil ik skills kunnen beheren (CRUD) zodat de database schoon en up-to-date blijft.
- Als kandidaat wil ik vacatures kunnen zoeken op basis van mijn vaardigheden zodat ik relevante vacatures vind.
- Als kandidaat wil ik profielen kunnen vergelijken zodat ik kan zien welke vaardigheden in trek zijn.
- CSV-import voor vacatures
- Database met profielen, vacatures, hardskills, softskills
- CRUD voor vacatures
- CRUD voor skills
- CRUD voor profielen
- Zoeken/filteren van vacatures op basis van profiel
- Beheerpagina voor skills
- Validatie om dubbele skills te voorkomen
- Kandidatenregistratie met eigen profiel
- Matchingsalgoritme om kandidaten automatisch te koppelen aan vacatures
- Dashboard met statistieken
- Frontend framework (focus ligt op Laravel backend)
- Geavanceerde AI/algoritmische matching
- Laravel project opzetten
- Migrations maken voor alle tabellen
- Seeder maken voor standaard skillslijst
- CSV-import functionaliteit opzetten
- CRUD-functionaliteit voor vacatures
- Relaties koppelen aan profielen
- Validatie en error handling
- CRUD-functionaliteit voor skills
- CRUD-functionaliteit voor profielen
- Koppeltabellen implementeren (profiel_soft, profiel_hard)
- Zoeken/filteren op basis van profielen
- Admin panel voor skills en profielen
- Documentatie en testen
Voortgang wordt bijgehouden via GitHub Projects en Issues:
- To Do: nieuwe features en bugs
- In Progress: taken waar momenteel aan gewerkt wordt
- Done: afgeronde taken
Daarnaast wordt per sprint een korte retrospective toegevoegd in de wiki van het project om te reflecteren op wat goed ging en wat beter kan.
- Clone de repository
git clone https://github.com/martijntjee/data_project.git- Installeer dependencies
composer install
npm install && npm run dev- Configureer
.envbestand
DB_DATABASE=vacaturedb
DB_USERNAME=root
DB_PASSWORD=- Run migrations en seeders
php artisan migrate --seed- Start de server
php artisan serveAlle documentatie (backlog, ERD, sprints, user stories) is beschikbaar in deze README en in de Prjects sectie van de GitHub-repo.