HOTELPULSE STEP 19 — HOUSEKEEPING PWA & PUSH NOTIFICATIONS ========================================================== ΤΙ ΠΡΟΣΘΕΤΕΙ ------------ 1. Εγκαταστάσιμη εφαρμογή "HotelPulse Housekeeping" από Chrome/Android. 2. Άνοιγμα σε standalone μορφή, απευθείας στη σελίδα "Η μέρα μου". 3. Push notifications ακόμη και όταν η εφαρμογή δεν είναι ανοικτή. 4. Άνοιγμα της ειδοποίησης απευθείας στο σωστό δωμάτιο. 5. Ειδοποιήσεις για: - νέο QR αίτημα Housekeeping, - νέα οδηγία Reception προς Housekeeping, - checkout / δωμάτιο που μπορεί να καθαριστεί, - επείγον turnover με νέα άφιξη την ίδια ημέρα. 6. Κανονικός ήχος και δόνηση Android στο background. 7. Πρόσθετος ήχος HotelPulse όταν η εφαρμογή είναι ήδη ανοικτή. 8. Admin σελίδα για ενεργές συσκευές, δοκιμές και ιστορικό αποστολών. 9. Cron fallback για ειδοποιήσεις που δεν παραδόθηκαν αμέσως. ΣΗΜΑΝΤΙΚΟ --------- Η εφαρμογή πρέπει να ανοίγει με HTTPS. Το domain είναι ήδη: https://hotelpulse.pliroforikiaigaiou.com Η εγκατάσταση παρακάτω υποθέτει ότι το HotelPulse βρίσκεται στο: /var/www/hotelpulse και εξυπηρετείται στις διαδρομές /hotelpulse/... ΕΓΚΑΤΑΣΤΑΣΗ ΣΤΟ DIGITALOCEAN ----------------------------- 1. Ανέβασε το ZIP με WinSCP στο /root. 2. Backup και αντιγραφή αρχείων: cp -a /var/www/hotelpulse /var/www/hotelpulse_backup_before_step19_$(date +%F_%H%M) rm -rf /tmp/hotelpulse_step19 mkdir -p /tmp/hotelpulse_step19 unzip -q /root/hotelpulse_step19_housekeeping_pwa_changed_files.zip -d /tmp/hotelpulse_step19 cp -a /tmp/hotelpulse_step19/hotelpulse/. /var/www/hotelpulse/ chown -R www-data:www-data /var/www/hotelpulse find /var/www/hotelpulse -type d -exec chmod 755 {} \; find /var/www/hotelpulse -type f -exec chmod 644 {} \; 3. Εγκατάσταση Composer και PHP extensions: apt update apt install -y composer php-curl php-mbstring php-xml unzip systemctl restart apache2 4. Εγκατάσταση της βιβλιοθήκης Web Push: cd /var/www/hotelpulse sudo -u www-data composer install --no-dev --optimize-autoloader 5. Δημιουργία πινάκων και μόνιμων VAPID keys: sudo -u www-data /usr/bin/php /var/www/hotelpulse/cron/push_setup.php Πρέπει να εμφανίσει: HotelPulse Web Push ready. 6. Δημιουργία cron για retry/background αποστολή: touch /var/log/hotelpulse-push.log chown www-data:www-data /var/log/hotelpulse-push.log chmod 664 /var/log/hotelpulse-push.log cat > /etc/cron.d/hotelpulse-push <<'CRON' * * * * * www-data /usr/bin/php /var/www/hotelpulse/cron/push_notifications.php >> /var/log/hotelpulse-push.log 2>&1 CRON chmod 644 /etc/cron.d/hotelpulse-push systemctl restart cron systemctl restart apache2 7. Έλεγχος cron: sudo -u www-data /usr/bin/php /var/www/hotelpulse/cron/push_notifications.php tail -n 30 /var/log/hotelpulse-push.log ΕΛΕΓΧΟΣ ΑΠΟ ADMIN ----------------- Άνοιξε: Admin → Ειδοποιήσεις κινητών Πρέπει να εμφανίζει: - Βιβλιοθήκη Web Push: OK - Κλειδιά VAPID: OK ΕΓΚΑΤΑΣΤΑΣΗ ΣΤΟ ΚΙΝΗΤΟ HOUSEKEEPING ----------------------------------- 1. Άνοιξε Chrome σε Android. 2. Πήγαινε στο: https://hotelpulse.pliroforikiaigaiou.com/hotelpulse/login.php 3. Συνδέσου με χρήστη Housekeeping. 4. Άνοιξε "Η μέρα μου". 5. Στο πλαίσιο "Εφαρμογή κινητού & ειδοποιήσεις": - πάτησε "Εγκατάσταση στο κινητό", - πάτησε "Ενεργοποίηση ειδοποιήσεων", - επίτρεψε τις ειδοποιήσεις του Android, - πάτησε "Δοκιμή ειδοποίησης". Αν δεν εμφανιστεί αυτόματα το κουμπί εγκατάστασης: Chrome → μενού ⋮ → Εγκατάσταση εφαρμογής ή Προσθήκη στην αρχική οθόνη. ΗΧΟΣ ANDROID ------------ Για background push χρησιμοποιείται ο κανονικός ήχος ειδοποιήσεων Android/Chrome. Για να ακούγεται: Ρυθμίσεις Android → Εφαρμογές → HotelPulse ή Chrome → Ειδοποιήσεις → Ήχος ενεργός. Το δικό μας αρχείο ήχου HotelPulse παίζει επιπλέον όταν η εφαρμογή είναι ανοικτή. Οι web push εφαρμογές δεν μπορούν να επιβάλουν αξιόπιστα δικό τους αρχείο ήχου όταν είναι κλειστές· αυτό ελέγχεται από το Android. ΔΟΚΙΜΕΣ ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΓΙΝΟΥΝ ----------------------------- 1. Δοκιμαστική ειδοποίηση από το κινητό. 2. Δοκιμή από Admin → Ειδοποιήσεις κινητών. 3. QR αίτημα για πετσέτες σε τμήμα Housekeeping. 4. Νέα οδηγία Housekeeping από Reception. 5. Checkout από ΤΕΣΑΕ και χειροκίνητο checkout από Reception. 6. Κλείσιμο της PWA και επανάληψη δοκιμής για επιβεβαίωση background push. 7. Πάτημα ειδοποίησης και επιβεβαίωση ότι ανοίγει το σωστό δωμάτιο. ΑΣΦΑΛΕΙΑ -------- - Κάθε push subscription συνδέεται με hotel_id, χρήστη και ρόλο. - Το ιδιωτικό VAPID key αποθηκεύεται στη βάση και δεν εμφανίζεται στις σελίδες. - Τα endpoints των συσκευών δεν εμφανίζονται στον χρήστη. - Ληγμένες ή ακυρωμένες subscriptions απενεργοποιούνται αυτόματα. - Οι ειδοποιήσεις έχουν deduplication ώστε το ίδιο συμβάν να μην αποστέλλεται συνεχώς. ΕΠΑΝΑΦΟΡΑ ΑΝ ΧΡΕΙΑΣΤΕΙ ----------------------- Το backup έχει όνομα παρόμοιο με: /var/www/hotelpulse_backup_before_step19_YYYY-MM-DD_HHMM Μπορεί να επανέλθει αφού πρώτα σταματήσει ο Apache και κρατηθεί backup της τρέχουσας κατάστασης.