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. Dit is foutgevoelig: we weten vaak niet wie welk boek heeft, of een boek al over de inleverdatum heen is, en leerlingen kunnen niet zelf zien welke boeken er beschikbaar zijn.
Hierdoor raken boeken kwijt en is de administratie een dagtaak geworden. We willen dit proces digitaliseren zodat leerlingen zelf boeken kunnen reserveren en de mediabeheerder het overzicht behoudt.
2. Doelstelling
Wij willen een web-based uitleensysteem (BookFlow) laten ontwikkelen.
Leerlingen moeten online de catalogus kunnen inzien en een "Leenverzoek" kunnen indienen. De mediabeheerder moet deze verzoeken kunnen goedkeuren, boeken op "uitgeleend" kunnen zetten en de innames kunnen registreren.
3. Doelgroepen
-
Leerlingen (Gebruikers): Willen zien of een boek aanwezig is en hun eigen actuele leningen bekijken.
-
Mediabeheerders (Admins): Willen alle uitleningen beheren en zien welke boeken te laat zijn ingeleverd.
4. Gewenste Functionaliteiten (Must-Haves)
Voor het MVP verwachten wij de volgende functies:
-
Authenticatie:
-
Inlogscherm voor leerlingen en personeel.
-
Rol-verdeling:
student(user) enlibrarian(admin).
-
-
Voor Leerlingen:
-
Dashboard met overzicht van eigen lopende en vorig jaar geleende boeken.
-
Catalogus-overzicht (Zoeken op Titel, Auteur, Categorie: Fictie/Non-Fictie).
-
Mogelijkheid om een "Leenaanvraag" te doen voor een beschikbaar boek.
-
-
Voor Mediabeheerders (Admins):
- Elke boek dat is uitgeleend heeft een maximale uitleentermijn. Deze termijn wordt door de admins per book vastgesteld waarbij standaard een defautl van 4 weken wordt gebruikt.
- Het registreren 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 uitleningen van de hele school.
-
Detailpagina per lening om deze te verwerken (Status: Ingediend / Uitgeleend / Ingeleverd / Te laat).
-
Mogelijkheid om een "Staat van het boek" notitie toe te voegen (bijv: "ezelsoren op pagina 10").
5. Technische Eisen & Randvoorwaarden
-
Taal & Database: PHP (8.x) en MySQL.
-
Architectuur: Gebruik van
includesvoor header/footer en database-configuratie. -
Veiligheid: Alle zoekopdrachten en form-inputs moeten beveiligd zijn tegen SQL-injection (Prepared Statements) en XSS (
htmlspecialchars). -
Data Integriteit: Elke lening moet gekoppeld zijn aan een book_id en een user_id (Relational Database).
6. Budget en Planning
-
Tijdsinvestering: Geschat op 40-45 uur.
-
Oplevering: Binnen 5 weken.
7. Gevraagde actie
-
Lever een Functioneel Ontwerp.
-
Lever een Technische Schets (ERD met boeken en leningen + Wireframes).
-
Realiseer de applicatie en lever de broncode op via Git.
BIJLAGE: Specifieke Design & Interface Wensen
De uitstraling moet "Huiselijk maar Modern" zijn. Denk aan een interface die ook voor jongere leerlingen begrijpelijk is.
-
Status Badges voor Boeken:
-
In de catalogus moet de beschikbaarheid direct zichtbaar zijn:
-
Beschikbaar: Groen label.
-
Uitgeleend: Grijs label.
-
TE LAAT: Fel Rood (
#D32F2F).
-
-
-
Navigatie (Header):
-
Een strakke navigatiebalk bovenin de pagina. Aan de rechterkant de naam van de leerling met een icoon van een boek.
-
-
Boek Detail Weergave (70/30 Split):
-
Gebruik Flexbox of Grid voor de lay-out:
-
Links (70%): De flaptekst van het boek en de auteur-informatie.
-
Rechts (30%): De "Leen-box" met de knop om het boek aan te vragen en informatie over de huidige status.
-
-
-
De "Librarian Filter":
-
De beheerder moet de lijst met uitleningen kunnen filteren via URL parameters (
GET):-
"Toon Alles"
-
"Alleen Te Laat"
-
"Wacht op Goedkeuring"
-
-
Tips voor jouw Examenportfolio
Waarom is deze opdracht geschikt voor je examen?
-
Complexiteit (W3): Je hebt een N-op-M relatie nodig (of een koppeltabel 'Leningen') tussen Boeken en Gebruikers. Dit toont een hoog niveau van database-inzicht aan.
-
SQL Parameters (W3): Het bouwen van de zoekfunctie in de catalogus (
WHERE titel LIKE ?) is een perfecte manier om veilig programmeren met parameters te bewijzen. -
Testen (W4): Een ideaal testscenario: "Kan een leerling een boek reserveren dat al door iemand anders is uitgeleend?"