# Project 6 - Real-time Feedback Systeem

## Projectbriefing

**Projectnaam**: Real-time Feedback Systeem "PulseCheck"

**Datum:** 18 december 2025

**Opdrachtgever:** Retail Groep "De Markt"

**Contactpersoon:** Dhr. T. Hendriks (Operationeel Manager)

---

### 1. Achtergrond en Probleemstelling

Retail Groep "De Markt" wil stoppen met lange, saaie online vragenlijsten waar klanten geen tijd voor hebben. In plaats daarvan willen we "Pulse-Surveys": korte, krachtige vragenlijsten van maximaal 3 vragen die via een QR-code op de winkelvloer direct door klanten kunnen worden ingevuld.

We willen geen standaard pakket zoals SurveyMonkey, omdat we de data direct willen koppelen aan onze eigen filiaalnummers en medewerkers-ID's voor interne prestatie-analyses. De anonimiteit van de klant moet gewaarborgd blijven, maar de data moet wel direct actiegericht zijn voor de bedrijfsleider.

### 2. Doelstelling

Wij willen een **custom-built survey platform (PulseCheck)** laten ontwikkelen.

Klanten moeten zonder account een korte vragenlijst kunnen invullen. De bedrijfsleiders moeten in een afgeschermd beheerpaneel de resultaten per filiaal kunnen inzien en analyseren.

### 3. Doelgroepen

1. **Klanten (Anonieme Gebruikers):** Willen binnen 30 seconden hun mening geven over de wachttijd en vriendelijkheid.
2. **Bedrijfsleiders (Admins):** Willen per filiaal zien wat de gemiddelde score is en welke opmerkingen klanten achterlaten.

### 4. Gewenste Functionaliteiten (Must-Haves)

Voor het MVP verwachten wij de volgende functies:

- **Toegang &amp; Authenticatie:**
    
    
    - De survey zelf is publiek toegankelijk (geen login).
    - Inlogscherm voor admins (bedrijfsleiders) om resultaten te bekijken.
- **De Pulse-Survey (Voor Klanten):**
    
    
    - Invulformulier met 3 verplichte velden: Score (1-5 sterren), Categorie (Service/Prijs/Assortiment) en Toelichting (tekst).
    - Automatische registratie van het filiaal-ID (via een hidden field of URL-parameter).
    - Vriendelijke bedankpagina na verzending.
- **Het Dashboard (Voor Admins):**
    
    
    - Overzicht van alle binnengekomen feedback in een tabel.
    - Berekening van de **gemiddelde score** per filiaal.
    - Mogelijkheid om een survey-antwoord te markeren als "Gelezen" of "Actie ondernomen".

### 5. Technische Eisen &amp; Randvoorwaarden

- **Taal &amp; Database:** PHP (8.x) en MySQL.
- **Code Architectuur:** Gebruik van `includes` voor de database-connectie en herbruikbare UI componenten.
- **Veiligheid:** Omdat klanten tekst invoeren, is **XSS preventie** (`htmlspecialchars`) cruciaal. Gebruik Prepared Statements voor het opslaan van antwoorden.
- **Data Integriteit:** Elke feedback-entry moet gekoppeld zijn aan een bestaand filiaal-ID in de database.

### 6. Budget en Planning

- **Tijdsinvestering:** Geschat op circa **40-45 uur**.
- **Oplevering:** Prototype binnen 5 weken.

### 7. Gevraagde actie

1. Lever een **Functioneel Ontwerp** (wat is de flow van de klant?).
2. Lever een **Technische Schets** (Database ontwerp + Mobile Wireframes).
3. Realiseer de applicatie en lever de broncode op via Git.

---

## BIJLAGE: Specifieke Design &amp; Interface Wensen

Omdat de klant dit op hun eigen telefoon invult, moet de survey 100% geoptimaliseerd zijn voor mobile (Mobile First).

1. **Visual Feedback (Rating):**
    
    
    - De 5-sterren score moet visueel aantrekkelijk zijn. Gebruik kleurverloop:
        
        
        - *Score 1-2:* Rood (Slecht).
        - *Score 3:* Oranje/Geel (Gemiddeld).
        - *Score 4-5:* Helder Groen (`#2E7D32`) (Top).
2. **Clean Header:**
    
    
    - Geen ingewikkelde menu's. Alleen een logo gecentreerd bovenin en een subtiele filiaalnaam eronder.
3. **Admin Detail View (70/30 Split):**
    
    
    - Wanneer een admin op een feedback-item klikt:
        
        
        - *Links (70%):* De volledige toelichting van de klant in een leesbaar font.
        - *Rechts (30%):* De metadata (Datum/Tijd, Filiaalnummer, IP-adres check).
4. **De "Analytics Filter":**
    
    
    - De admin moet bovenin de lijst kunnen filteren via URL parameters (`GET`):
        
        
        1. "Toon alle scores"
        2. "Alleen Negatief (1-2 sterren)"
        3. "Alleen deze week"

---

### Tips voor jouw Examenportfolio

*Waarom is deze opdracht geschikt voor je examen?*

1. **Complexiteit (W3):** Je moet omgaan met publieke data-entry (de klant) en geprivilegieerde data-viewing (de admin). De link met filiaal-ID's is een klassieke 1-op-N relatie.
2. **SQL Parameters (W3):** De "Analytics Filter" dwingt je om veilige SQL te schrijven die reageert op URL-input.
3. **Validation &amp; Security (W1/W3):** Omdat de survey openstaat voor iedereen, is input-validatie (bijv. maximale tekstlengte) en sanitization essentieel om de database schoon te houden.