Skip to main content

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

  1. Leerlingen (Gebruikers): Willen direct zien of een boek 'thuis' is en wanneer zij hun eigen boeken moeten inleveren.

  2. 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

  1. Status Labels: Gebruik visuele indicators (badges) in de tabel: Beschikbaar (Groen), Uitgeleend (Grijs), Te laat (Rood).
  2. UX voor Admins: Het uitleenscherm moet 'keyboard-friendly' zijn (tabben tussen velden) voor snelle verwerking aan de balie.
  3. 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

  1. 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.
  2. Joins (W3): In je Admin Dashboard gebruik je SQL JOINs om gegevens uit de tabellen gebruikers, boeken en leningen in één overzicht te tonen.