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 eigen bibliotheek met ruim 2.000 boeken. Momenteel wordt het uitlenen bijgehouden in een Excel-bestand.Excel. Dit is foutgevoelig: we weten vaak niet wie welk boek heeft, of een boek al over de inleverdatum heenis is,verstreken en leerlingen kunnen de catalogus niet zelfinzien.

zien

Dit welkeleidt tot verlies van boeken er beschikbaar zijn.

Hierdoor raken boeken kwijt en is de administratie een dagtaakenorme geworden.administratieve druk. We willen dit procesprofessionaliseren digitaliserenmet zodateen systeem waarbij leerlingen zelfzelfredzaam boeken kunnen reserverenzijn en debeheerders mediabeheerdercontrole het overzicht behoudt.houden.

2. Doelstelling

WijDe willenontwikkeling van een web-based uitleensysteem (BookFlow) laten ontwikkelen..

Leerlingen moeten online de catalogus kunnen inziendoorzoeken en eenreserveringen "Leenverzoek" kunnen indienen.plaatsen. De mediabeheerder moet dezeaanvragen verzoekenverwerken, kunnentermijnen goedkeuren, boeken op "uitgeleend" kunnen zettenbewaken en de innamesinname kunnenvan boeken efficiënt registreren.

3. Doelgroepen

  1. Leerlingen (Gebruikers): Willen direct zien of een boek aanwezig'thuis' is en wanneer zij hun eigen actueleboeken leningenmoeten bekijken.inleveren.

  2. Mediabeheerders (Admins): Willen allemet minimale handelingen uitleningen beherenregistreren en zienproactief welke boeken 'te laatlaat' zijnmeldingen ingeleverd.inzien.

4. Gewenste Functionaliteiten (Must-Haves)

Voor het MVP verwachten wij de volgende functies:

  • Authenticatie:

    • Inlogscherm voormet leerlingen en personeel.

    • Rol-rol-verdeling: student (user) en librarian (admin).

  • Voor Leerlingen:

    • Dashboard met overzicht van eigen lopendeactieve leningen en vorig jaar geleende boeken.

      historie.
    • Doorzoekbare

      Catalogus-overzichtcatalogus (Zoeken op Titel, Auteur, Categorie: Fictie/Non-Fictie)Categorie).

    • Mogelijkheid om eenKnop "Leenaanvraag"Reserveer teBoek" doen(alleen voormogelijk eenindien beschikbaarboek boek.

      status 'Beschikbaar' heeft).
  • Voor Mediabeheerders (Admins):

    • ElkeUitleentermijn 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 datgekoppeld iskunnen uitgeleend heeft een maximale uitleentermijn. Deze termijn wordt door de admins per book vastgesteld waarbij standaard een defautl van 4 weken wordt gebruikt.worden.
    • HetDashboard: registrerenOverzicht van een uitlening moet vlot en efficient gaan, alles op een scherm met zoveel mogelijk default waarden en duidelikje invulvelden die snel kunnen worden ingevuld.
    • Dashboard met alle actieve uitleningenuitleningen, vangesorteerd deop hele school.

      inleverdatum.
    • Statusbeheer:

      Detailpagina per lening om deze te verwerken (Status: Ingediend / Uitgeleend / Ingeleverd / Te laat).

    • Mogelijkheid om een "Staatlening af te ronden of de staat van het boek"boek notitie(notitie) toebij te voegen (bijv: "ezelsoren op pagina 10").

      werken.

5. Technische Eisen & Randvoorwaarden

  • PHP

    Taal8.x & Database: PHP (8.x) en MySQL.

  • Architectuur:MySQL: Gebruik van PDO voor database-interactie.

  • Security: Verplichte includespassword_hash voor header/footeraccounts, enPrepared database-configuratie.

  • Veiligheid: Alle zoekopdrachten en form-inputs moeten beveiligd zijnStatements tegen SQL-injection (Prepared Statements) en XSS (htmlspecialchars).

    tegen XSS.
  • Data Integriteit:Validatie: ElkeEen leningboek moetkan gekoppeldniet zijnworden aanuitgeleend eenals book_idde enhuidige eenstatus user_id'Uitgeleend' is.

  • Architectuur: Logische mappenstructuur (Relationalbijv. Database)/assets, /includes, /admin).

6. Budget en Planning

  • Tijdsinvestering: Geschat op 40-45 uur.

    uur.
  • Oplevering: BinnenWerkend MVP inclusief testrapport binnen 5 weken.

7. Gevraagde actie

  1. Lever een Functioneel Ontwerp.

  2. Lever een Technische Schets (ERD met boeken en leningen + Wireframes).

  3. Realiseer de applicatie en lever de broncode op via Git.


BIJLAGE: Specifieke Design & InterfaceUI Wensen

De

    uitstraling
  1. Status Labels: Gebruik visuele indicators (badges) in de tabel: Beschikbaar (Groen), Uitgeleend (Grijs), Te laat (Rood).
  2. UX voor Admins: Het uitleenscherm moet "Huiselijk'keyboard-friendly' maarzijn Modern"(tabben zijn.tussen Denkvelden) voor snelle verwerking aan eende interface die ook voor jongere leerlingen begrijpelijk is.

      balie.
    1. Split-Screen

      StatusDetail: Badges voor Boeken:

      • InOp de catalogus moet de beschikbaarheid direct zichtbaar zijn:

        • Beschikbaar: Groen label.

        • Uitgeleend: Grijs label.

        • TE LAAT: Fel Rood (#D32F2F).

    2. Navigatie (Header):

      • Een strakke navigatiebalk bovenin de pagina. Aan de rechterkant de naam van de leerling met een icoondetailpagina van een boek.

        boek:
    3. Boek Detail Weergave (70/30 Split):

      • Gebruik Flexbox of Grid voorlinks de lay-out:

        boekinformatie,
          rechts
        • de

          Links (70%): De flaptekstuitleenhistorie van hetdat specifieke boek en(wie de auteur-informatie.

        • Rechts (30%): De "Leen-box" met de knop omhad het boek aan te vragen en informatie over de huidige status.

    4. De "Librarian Filter":

      • De beheerder moet de lijst met uitleningen kunnen filteren via URL parameters (GETwanneer?):

        1. "Toon Alles"

        2. "Alleen Te Laat"

        3. "Wacht op Goedkeuring"

      .

    Extra Tips voor jouw Examenportfolio

    Waarom is deze opdracht geschikt voor je examen?

    Portfolio
    1. ComplexiteitDatum-logica (W3): JeLaat hebtin eenje N-op-Mcode relatiezien nodighoe je met PHP de 'inleverdatum' berekent (ofvandaag een+ koppeltabel28 'Leningen') tussen Boekendagen) en Gebruikers.hoe Ditje toontdit eenvergelijkt hoogmet niveaude vanhuidige database-inzichtdatum aan.

      om de status 'Te laat' te triggeren.
    2. SQL ParametersJoins (W3): HetIn bouwenje vanAdmin Dashboard gebruik je SQL JOINs om gegevens uit de zoekfunctietabellen gebruikers, boeken en leningen in deéén catalogus (WHERE titel LIKE ?) is een perfecte manier om veilig programmeren met parametersoverzicht te bewijzen.

    3. Testen (W4): Een ideaal testscenario: "Kan een leerling een boek reserveren dat al door iemand anders is uitgeleend?"

      tonen.