Powiadomienia Web Push dla Moodle
Czym jest Web Push?
Powiadomienia Web Push pozwalają dostarczać informacje z platformy e-learningowej bezpośrednio na ekran użytkownika — w przeglądarce, na komputerze lub telefonie — nawet wtedy, gdy nie ma on otwartej strony kursu. Użytkownik wyraża zgodę jednym kliknięciem, bez konieczności instalowania aplikacji mobilnej czy podawania adresu e-mail.
Od momentu subskrypcji każde powiadomienie Moodle (nowa ocena, wiadomość od prowadzącego, zbliżający się termin zadania) trafia jako natywne powiadomienie systemowe — takie samo, jakie znamy z aplikacji na telefonie.
Skład pakietu
Kompletne rozwiązanie Web Push składa się z czterech wzajemnie współpracujących wtyczek:
| Wtyczka | Typ | Rola w ekosystemie |
|---|---|---|
| message_webpush | Message output | Silnik całego rozwiązania — obsługuje klucze VAPID, Service Worker, szyfrowanie wiadomości i wysyłkę powiadomień |
| local_webpush | Local plugin | Panel administracyjny — masowe powiadomienia, kampanie, statystyki i historia wysyłek |
| block_webpush | Block | Blok z kodem QR do szybkiej subskrypcji mobilnej oraz panel zarządzania urządzeniami |
| enrol_push | Enrolment | Metoda zapisu na kurs — użytkownik potwierdza uczestnictwo jednym kliknięciem w powiadomienie push |
Wtyczką bazową, wymaganą przez pozostałe, jest message_webpush. Pozostałe trzy wtyczki można instalować niezależnie, w zależności od potrzeb.
Jak działa subskrypcja?
- Użytkownik loguje się na platformę i widzi dyskretny komunikat z pytaniem o zgodę na powiadomienia.
- Jednym kliknięciem potwierdza subskrypcję — przeglądarka rejestruje urządzenie.
- Od tego momentu powiadomienia z Moodle trafiają na ekran urządzenia jako powiadomienia systemowe.
Subskrypcja i rezygnacja z niej są w pełni kontrolowane przez użytkownika. Zgodność z RODO jest zapewniona na poziomie mechanizmu — bez wyrażenia zgody żadne powiadomienie nie zostanie wysłane.
Przewaga nad innymi kanałami komunikacji
W porównaniu z e-mailem
Powiadomienia push docierają natychmiast — nie trzeba czekać, aż użytkownik sprawdzi skrzynkę. Nie ma ryzyka, że wiadomość trafi do folderu ze spamem. Push pojawia się na ekranie i jest trudny do przeoczenia.
W porównaniu z aplikacją mobilną
Push działa w przeglądarce — nie wymaga pobierania i instalowania aplikacji z App Store czy Google Play. Nie generuje kosztów budowy i utrzymania osobnej aplikacji. Aktualizacje są automatyczne, bo mechanizm opiera się na standardzie webowym.
W porównaniu z powiadomieniami popup w Moodle
Wbudowane powiadomienia popup w Moodle wymagają, żeby użytkownik miał otwartą platformę. Push działa poza przeglądarką — nawet gdy jest zamknięta. Powiadomienia wyglądają jak natywne systemowe, co zwiększa ich zauważalność.
Typowe zastosowania
- Przypomnienia o terminach — zbliżające się deadliny zadań, quizów i egzaminów.
- Informowanie o ocenach — natychmiastowa informacja o wynikach po sprawdzeniu pracy.
- Wiadomości od prowadzących — bieżąca korespondencja bez konieczności logowania.
- Ogłoszenia — ważne komunikaty publikowane na forach kursowych.
- Szkolenia obowiązkowe — przypomnienia o niezrealizowanych szkoleniach compliance.
- Zapisy na kursy — potwierdzenia i powiadomienia o możliwości dołączenia do kursu.
Integracja z Moodle
Pakiet Web Push wpina się w natywny system powiadomień Moodle. Oznacza to, że:
- Administrator platformy decyduje, które typy powiadomień mogą być wysyłane kanałem push.
- Użytkownik samodzielnie wybiera w swoich preferencjach, które powiadomienia chce otrzymywać.
- Mechanizm działa z każdym rodzajem powiadomienia — również z powiadomieniami generowanymi przez wtyczki zewnętrzne.
- Pełna kontrola po stronie użytkownika i administratora, zgodność z RODO.
Bezpieczeństwo
- Szyfrowanie end-to-end — treść powiadomienia jest szyfrowana algorytmem AES-128-GCM zanim opuści serwer.
- Uwierzytelnianie VAPID — serwer wysyłający jest kryptograficznie zweryfikowany, co zapobiega podszywaniu się.
- Dane na Twoim serwerze — rozwiązanie nie korzysta z usług zewnętrznych, chmur ani pośredników. Klucze i subskrypcje pozostają na infrastrukturze klienta.
- Pełna kontrola użytkownika — subskrypcja i rezygnacja jednym kliknięciem.
Kompatybilność przeglądarek
| Przeglądarka | Desktop | Mobile |
|---|---|---|
| Chrome | ✅ | ✅ (Android) |
| Firefox | ✅ | ✅ (Android) |
| Edge | ✅ | ✅ |
| Safari | ✅ (macOS 13+) | ✅ (iOS 16.4+) |
| Opera | ✅ | ✅ |
Wymagania techniczne
- Moodle 4.5 lub nowszy
- HTTPS (certyfikat SSL)
- PHP 8.1+ z rozszerzeniem OpenSSL
Instalacja trwa ok. 15 minut. Rozwiązanie nie wymaga dodatkowych serwerów, usług zewnętrznych ani płatnych kluczy API.
Opis poszczególnych wtyczek
message_webpush — Silnik powiadomień Web Push
Bazowa wtyczka odpowiedzialna za cały mechanizm dostarczania powiadomień push. Obsługuje generowanie i zarządzanie kluczami VAPID, rejestrację Service Workera w przeglądarce użytkownika, szyfrowanie treści powiadomień oraz ich wysyłkę do zarejestrowanych urządzeń.
Jest to wtyczka typu message output, co oznacza, że pojawia się w Moodle jako dodatkowy kanał dostarczania powiadomień — obok e-maila i powiadomień popup. Administrator może włączać i wyłączać ją dla poszczególnych typów powiadomień, a użytkownik zarządza swoimi preferencjami w standardowy sposób.
Wymagania: Moodle 4.5+, HTTPS, PHP 8.1+ z OpenSSL.
block_webpush — Subskrypcja mobilna przez QR kod
Problem, który rozwiązuje
Użytkownicy platformy e-learningowej często pracują na komputerze stacjonarnym, ale chcieliby otrzymywać powiadomienia na telefon. Logowanie się do Moodle na telefonie bywa uciążliwe, a dedykowane aplikacje mobilne wymagają instalacji.
Jak działa blok QR
- Zalogowany użytkownik widzi blok na Dashboardzie, stronie kursu lub w profilu.
- Skanuje wyświetlony kod QR aparatem telefonu.
- W przeglądarce mobilnej otwiera się strona z pytaniem o zgodę na powiadomienia.
- Jedno kliknięcie — push jest aktywny na telefonie.
Cały proces trwa ok. 10 sekund. Nie wymaga wpisywania hasła ani instalowania czegokolwiek.
Zarządzanie urządzeniami
Pod kodem QR wyświetla się lista aktywnych urządzeń użytkownika: nazwa przeglądarki, typ urządzenia (desktop / mobile / tablet), data subskrypcji oraz przycisk umożliwiający usunięcie urządzenia z listy. Limit wynosi 5 urządzeń na użytkownika.
Bezpieczeństwo subskrypcji QR
- Każdy wygenerowany kod QR zawiera jednorazowy token — działa tylko raz.
- Token wygasa po 15 minutach od utworzenia.
- Przeterminowane tokeny są automatycznie usuwane co 15 minut.
- Wtyczka implementuje Moodle Privacy API (zgodność z RODO).
Gdzie umieścić blok
Blok można dodać na Dashboard (widoczny zaraz po zalogowaniu), na stronie kursu (kontekstowe powiadomienia kursowe) lub na stronie głównej (szybki onboarding nowych użytkowników).
Wymagania: Moodle 4.5+, HTTPS, zainstalowana i skonfigurowana wtyczka message_webpush.
local_webpush — Panel administracyjny (masowe powiadomienia)
Do czego służy
Web Push Admin to narzędzie do masowego wysyłania powiadomień push z poziomu panelu administracyjnego Moodle. Pozwala dotrzeć z ważnym komunikatem do wybranej grupy użytkowników w ciągu kilku sekund — bez obciążania skrzynek mailowych.
Precyzyjne targetowanie odbiorców
Powiadomienie można skierować do: wszystkich aktywnych subskrybentów, uczestników wybranego kursu, użytkowników posiadających określoną rolę (np. nauczyciele, managerowie) lub członków konkretnej kohorty.
Planowanie i personalizacja wysyłki
- Wyślij teraz — natychmiastowa dystrybucja do wybranej grupy.
- Zaplanuj wysyłkę — ustawienie konkretnej daty i godziny.
- Niestandardowe ikony — możliwość dodania logo organizacji do powiadomienia.
- URL docelowy — po kliknięciu w powiadomienie użytkownik trafia na wskazaną stronę.
Monitoring i raportowanie
Panel oferuje dashboard z liczbą aktywnych subskrypcji i przeprowadzonych kampanii, pełną historię wysyłek (co, kiedy, do kogo) oraz szczegółowe logi z informacją o statusie dostarczenia per użytkownik i wskaźnikiem skuteczności.
Przykłady użycia
- Szkolenie obowiązkowe — „Przypomnienie: do piątku musisz ukończyć szkolenie BHP." Powiadomienie trafia natychmiast do uczestników kursu.
- Przerwa techniczna — „Przerwa serwisowa 15.03 w godz. 22:00–6:00." Jeden klik — informacja u wszystkich subskrybentów.
- Promocja kursu — „Nowy kurs: Zarządzanie projektami — zapisz się!" Kierowanie do wybranej kohorty z linkiem do zapisu.
- Deadline — „Ostatni dzień na oddanie projektu." Zaplanowanie powiadomienia na 24 godziny przed terminem.
Kontrola uprawnień i audyt
Wysyłkę masowych powiadomień mogą realizować wyłącznie użytkownicy z odpowiednimi uprawnieniami (np. manager). Pełna historia wysyłek stanowi ścieżkę audytową. Stare kampanie i logi są automatycznie czyszczone.
Wymagania: Moodle 4.5+, HTTPS, zainstalowana i skonfigurowana wtyczka message_webpush.
enrol_push — Zapis na kurs przez powiadomienie push
Idea
Zamiast tradycyjnego, natychmiastowego zapisu na kurs, użytkownik otrzymuje powiadomienie push na swoje urządzenia i potwierdza uczestnictwo jednym kliknięciem. To kontrolowany mechanizm rekrutacji — bezpieczny, szybki i wygodny.
Przebieg zapisu
- Administrator dodaje metodę „Zapis przez Push" do wybranego kursu.
- Użytkownik odwiedza stronę kursu i klika „Poproś o zapis".
- Powiadomienie push dociera natychmiast na wszystkie urządzenia użytkownika.
- Jedno kliknięcie w powiadomienie — użytkownik zostaje zapisany na kurs.
- Następuje automatyczne przekierowanie do kursu.
Korzyści dla administratora
- Pełna kontrola nad procesem zapisu — kto, kiedy i na jakich warunkach.
- Bezpieczeństwo — jednorazowe tokeny kryptograficzne (SHA-256) eliminują nadużycia.
- Elastyczny czas ważności tokenu — od 5 minut do 24 godzin.
- Samooczyszczający się system — wygasłe tokeny są usuwane automatycznie.
- Monitoring w logach Moodle.
Korzyści dla użytkownika
- Zapis jednym kliknięciem w powiadomienie — bez dodatkowych formularzy.
- Działa na każdym urządzeniu z przeglądarką.
- Powiadomienie dociera w czasie rzeczywistym.
Konfiguracja per kurs
Każda instancja metody zapisu pozwala ustawić indywidualnie:
| Parametr | Możliwości |
|---|---|
| Ważność tokenu | od 5 minut do 24 godzin |
| Rola po zapisie | Student, Teacher, Manager lub rola niestandardowa |
| Czas trwania zapisu | nieograniczony lub od 1 dnia do 1 roku |
| Okno czasowe | data rozpoczęcia i zakończenia przyjmowania zapisów |
| Powiadomienia | alerty o zbliżającym się wygaśnięciu zapisu |
Przykładowe scenariusze
- Szkolenia korporacyjne — kontrolowany nabór na szkolenia obowiązkowe, ograniczenie liczby miejsc.
- Uczelnie — zapisy na przedmioty z limitem miejsc, kursy fakultatywne, warsztaty.
- Szkolenia otwarte — weryfikacja uczestników przed zapisem, zarządzanie grupami.
Wymagania: Moodle 4.5+, HTTPS, zainstalowana i skonfigurowana wtyczka message_webpush.