🎿 Complete SnowWorld Narrowcasting System - MBO Challenge 18

 Full-stack narrowcasting platform implementation
 Real-time WebSocket communication for instant updates
 Zone-specific content distribution (reception, restaurant, skislope, lockers, shop)
 Professional admin dashboard with content management interface
 Beautiful client display with winter/snow theme matching SnowWorld branding
 Comprehensive technical documentation and test suite
 Docker deployment support with CI/CD pipeline
 All system tests passing successfully

🏗️ Technical Implementation:
- Backend: Node.js/Express with SQLite database
- Frontend: Vanilla HTML/CSS/JavaScript (no frameworks)
- Real-time: Socket.io WebSocket communication
- Database: Complete schema with content, schedule, zones, logs tables
- Security: File validation, input sanitization, CORS protection
- Performance: Optimized for fast loading and real-time updates

🚀 Features Delivered:
- Content upload (images, videos) with drag-and-drop interface
- Content scheduling and planning system
- Weather widget with real-time snow information
- Responsive design for all screen sizes
- Comprehensive error handling and fallback mechanisms
- Professional winter theme with snow animations
- Keyboard shortcuts and accessibility features

📁 Project Structure:
- /backend: Complete Node.js server with API and WebSocket
- /admin: Professional admin dashboard interface
- /client: Beautiful client display application
- /deployment: Docker and deployment configurations
- /docs: Comprehensive technical documentation
- /test_system.js: Complete test suite (all tests passing)

🧪 Testing Results:
- Server health:  Online and responsive
- API endpoints:  All endpoints functional
- Database operations:  All operations successful
- WebSocket communication:  Real-time updates working
- Zone distribution:  6 zones correctly loaded
- Weather integration:  Weather data available

Ready for production deployment at SnowWorld! 🎿❄️
This commit is contained in:
Alvin-Zilverstand
2026-01-19 10:02:11 +01:00
commit 8e446a1339
35 changed files with 15110 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
**Narrow Casting in Snow World**
--------------------------------
**Challenge 18**
### Challenge
**Ik kan, samen met mijn team, een narrow casting systeem maken voor een bedrijf als SnowWorld!**
### Omschrijving
#### **Het skigebied waar altijd sneeuw ligt, ook in de zomer**
SnowWorld is op zoek naar een getalenteerde MBO-student die een narrowcasting platform kan ontwikkelen om bezoekers van SnowWorld te voorzien van relevante informatie en entertainment. Narrowcasting is een effectieve manier om specifieke boodschappen weer te geven op schermen binnen een bepaalde locatie. In deze opdracht is het jouw taak om een dergelijk platform te ontwerpen en implementeren voor SnowWorld.
#### **Opdracht: narrowcasting**
* **Analyseer de behoeften en doelstellingen van SnowWorld** met betrekking tot het narrowcasting platform. Denk hierbij aan het weergeven van actuele informatie, aankondigingen, skipisteschema's, evenementen, promoties en andere relevante inhoud.
* **Ontwerp een gebruiksvriendelijke interface** voor het narrowcasting platform. Overweeg de plaatsing en het aantal schermen dat nodig is in verschillende zones binnen SnowWorld.
* **Implementeer de backend van het platform**, inclusief een beheerdersdashboard waarmee de content kan worden geüpload, gepland en beheerd.
* Ontwikkel een flexibel systeem voor het **weergeven van verschillende soorten** content, zoals afbeeldingen, video's, livestreams en sociale media-updates.
* **Test en optimaliseer het platform** om een goede werking en goede prestaties te garanderen.
* **Documenteer** (zoals jullie gewend zijn) **het volledige ontwikkelproces** inclusief ontwerpbeslissingen, gebruikte software en hardware, en instructies voor toekomstig onderhoud en uitbreiding.
**Tips voor een succesvolle start:**
* Begin met een grondige **inventarisatie** van de behoeften van SnowWorld en bespreek dit met de betrokken belanghebbenden om een duidelijk beeld te krijgen van de vereisten.
* Onderzoek **bestaande** narrowcasting **platformen** en technologieën om inspiratie op te doen en de beste oplossing te selecteren voor de behoeften van SnowWorld.
* Maak een gedetailleerd ontwerp van de **gebruikersinterface** en de functionaliteiten voordat je begint met de ontwikkeling.
* Kies een betrouwbare **softwarestack en ontwikkeltools** die geschikt zijn voor het bouwen van het narrowcasting platform.
* Overweeg het gebruik van **cloud gebaseerde oplossingen** voor schaalbaarheid en flexibiliteit?
* **Test het platform** regelmatig tijdens de ontwikkeling om eventuele problemen vroegtijdig op te sporen en op te lossen.
* Werk nauw samen met de belanghebbenden van SnowWorld om feedback te verzamelen en het platform **aan te passen aan hun wensen en verwachtingen.**
**Benodigde software en hardware:**
* **Software:** Mogelijke keuzes voor softwaretools zijn onder andere webontwikkelingsframeworks zoals React, Angular of Vue.js voor de frontend, en backendtechnologieën zoals Node.js of PHP. Daarnaast kunnen contentmanagementsystemen (CMS) zoals WordPress of digitale signage-software nuttig zijn voor het beheer van de inhoud.
* **Hardware:** Het exacte aantal en type schermen hangt af van de specifieke vereisten van SnowWorld. Mogelijk zijn er digitale displays, videowalls en mediaspelers nodig om de content weer te geven. Zorg ervoor dat de hardware voldoet aan de vereiste specificaties en dat deze naadloos integreert met de softwareoplossing.
Kick-off
#### **Maandag 5 januari 2026**
**TijdOmschrijving**9.00 uur - 9.15 uurWelkom heten en dagprogramma bespreken9.15 uur - 9.45 uur9.45 uur - 11.00 uur11:00 uur - 11:30 uur11:45 uur - 12:30 uur12.30 uur -15.15 uur
Deliverables**OnderdeelDeliverable**
[K1-W1: Stemt opdracht af, plant werkzaamheden en bewaakt de voortgang](https://lms.vistacollege.nl/courses/2590/pages/k1-w1-temt-opdracht-af-plant-werkzaamheden-en-bewaakt-de-voortgang)
[K1-W2: Maakt een technisch ontwerp voor software](https://lms.vistacollege.nl/courses/2590/pages/k1-w2-maakt-een-technisch-ontwerp-voor-software)
[K1-W3: Realiseert (onderdelen van) software](https://lms.vistacollege.nl/courses/2590/pages/k1-w3-realiseert-onderdelen-van-software)
[K2-W1: Werkt samen in een projectteam](https://lms.vistacollege.nl/courses/2590/pages/k2-w1-werkt-samen-in-een-projectteam)
[K2-W2: Presenteert het opgeleverde werk](https://lms.vistacollege.nl/courses/2590/pages/k2-w2-presenteert-het-opgeleverde-werk)
[K2-W3: Evalueert de samenwerking](https://lms.vistacollege.nl/courses/2590/pages/k2-w3-evalueert-de-samenwerking)
NederlandsWall of Fame: Motivatiebrief en CVEngelsKeeping a weekly log of your work (activities, progress and reflection) on the narrow casting system. How to log during your internship!Burgerschapwordt vervolgd...
PlanningVanaf dag 1 is het aan jullie om de touwtjes in handen te nemen en een dynamische planning op te stellen. Deze uitdaging biedt jullie de mogelijkheid om jullie organisatorische vaardigheden te benutten en jullie creatieve denkvermogen te stimuleren.Stel je eens voor: jullie bepalen zelf hoe het project verloopt. Jullie hebben de vrijheid om jullie eigen prioriteiten en mijlpalen te stellen. Dit betekent dat jullie volledig controle hebben over jullie eigen succes.Wees niet bang om te experimenteren, te brainstormen en nieuwe benaderingen te ontdekken. Het is jullie kans om te laten zien hoe goed jullie zijn in het plannen en organiseren van een project!Expo
Bij deze challenge houden jullie een markt-expo! In een grote ruimte staan tafels of kraampjes. Elk team richt een eigen kraam in. Je mag posters ophangen, een laptop neerzetten met de game, en kleine folders uitdelen. Bezoekers lopen rond, kijken naar alle kramen en stellen vragen. Elk team vertelt kort wat ze hebben gemaakt en waarom hun game speciaal is. Zo krijgen alle teams aandacht en maken ze de sfeer gezellig en uitnodigend.
Beoordelingsformulieren
Tijdens je expo wordt je beoordeeld op twee werkprocessen. Deze werkprocessen heb je zelf gekozen. Hieronder staan ze alle acht:
* [K1-W1: Stemt opdracht af, plant werkzaamheden en bewaakt de voortgang](https://lms.vistacollege.nl/courses/2590/pages/k1-w1-temt-opdracht-af-plant-werkzaamheden-en-bewaakt-de-voortgang)
* [K1-W2: Maakt een technisch ontwerp voor software](https://lms.vistacollege.nl/courses/2590/pages/k1-w2-maakt-een-technisch-ontwerp-voor-software)
* [K1-W3: Realiseert (onderdelen van) software](https://lms.vistacollege.nl/courses/2590/pages/k1-w3-realiseert-onderdelen-van-software)
* [K2-W1: Werkt samen in een projectteam](https://lms.vistacollege.nl/courses/2590/pages/k2-w1-werkt-samen-in-een-projectteam)
* [K2-W2: Presenteert het opgeleverde werk](https://lms.vistacollege.nl/courses/2590/pages/k2-w2-presenteert-het-opgeleverde-werk)
* [K2-W3: Evalueert de samenwerking](https://lms.vistacollege.nl/courses/2590/pages/k2-w3-evalueert-de-samenwerking)