Project 7 - Bibliotheek Beheersysteem Projectbriefing Projectnaam : Bibliotheek Beheersysteem "BookFlow" Datum: 18 december 2025 Opdrachtgever: Brede School "Het Leerpark" Contactpersoon: Mevr. L. de Vries (Mediabeheerder) 1. Achtergrond en Probleemstelling Brede School "Het Leerpark" heeft een bibliotheek met ruim 2.000 boeken. Momenteel wordt het uitlenen bijgehouden in Excel. Dit is foutgevoelig: we weten vaak niet wie welk boek heeft, of de inleverdatum is verstreken en leerlingen kunnen de catalogus niet inzien. Dit leidt tot verlies van boeken en een enorme administratieve druk. We willen dit professionaliseren met een systeem waarbij leerlingen zelfredzaam zijn en beheerders controle houden. 2. Doelstelling De ontwikkeling van een web-based uitleensysteem (BookFlow) . Leerlingen moeten online de catalogus doorzoeken en reserveringen plaatsen. De mediabeheerder moet aanvragen verwerken, termijnen bewaken en de inname van boeken efficiënt registreren. 3. Doelgroepen Leerlingen (Gebruikers): Willen direct zien of een boek 'thuis' is en wanneer zij hun eigen boeken moeten inleveren. Mediabeheerders (Admins): Willen met minimale handelingen uitleningen registreren en proactief 'te laat' meldingen inzien. 4. Gewenste Functionaliteiten (Must-Haves) Authenticatie: Inlogscherm met rol-verdeling: student en librarian . Voor Leerlingen: Dashboard met eigen actieve leningen en historie. Doorzoekbare catalogus (Titel, Auteur, Categorie). Knop "Reserveer Boek" (alleen mogelijk indien boek status 'Beschikbaar' heeft). Voor Mediabeheerders (Admins): Uitleentermijn beheer: Mogelijkheid om bij uitgifte de inleverdatum aan te passen (default 4 weken). Snel-registratie: Een dedicated "Uitleen-scherm" waar via een dropdown (of zoekveld) een leerling en boek gekoppeld kunnen worden. Dashboard: Overzicht van alle actieve uitleningen, gesorteerd op inleverdatum. Statusbeheer: Detailpagina om een lening af te ronden of de staat van het boek (notitie) bij te werken. 5. Technische Eisen & Randvoorwaarden PHP 8.x & MySQL: Gebruik van PDO voor database-interactie. Security: Verplichte password_hash voor accounts, Prepared Statements tegen SQL-injection en htmlspecialchars tegen XSS. Validatie: Een boek kan niet worden uitgeleend als de huidige status 'Uitgeleend' is. Architectuur: Logische mappenstructuur (bijv. /assets , /includes , /admin ). 6. Budget en Planning Tijdsinvestering: 40-45 uur. Oplevering: Werkend MVP inclusief testrapport binnen 5 weken. BIJLAGE: Design & UI Wensen Status Labels: Gebruik visuele indicators (badges) in de tabel: Beschikbaar (Groen), Uitgeleend (Grijs), Te laat (Rood). UX voor Admins: Het uitleenscherm moet 'keyboard-friendly' zijn (tabben tussen velden) voor snelle verwerking aan de balie. Split-Screen Detail: Op de detailpagina van een boek: links de boekinformatie, rechts de uitleenhistorie van dat specifieke boek (wie had het wanneer?). Extra Tips voor je Portfolio Datum-logica (W3): Laat in je code zien hoe je met PHP de 'inleverdatum' berekent (vandaag + 28 dagen) en hoe je dit vergelijkt met de huidige datum om de status 'Te laat' te triggeren. Joins (W3): In je Admin Dashboard gebruik je SQL JOINs om gegevens uit de tabellen gebruikers , boeken en leningen in één overzicht te tonen.