GPS tracker

 Priorytet A — brakujące podstawy SaaS

#FunkcjaDlaczego
1Dziennik zdarzeń (audit log)Kto, kiedy, co zmienił — logowania, edycje userów, zmiany planów, usunięcia. Tabela audit_log + widok w adminie z filtrami
2Centrum powiadomień (🔔 w topbarze)Alerty z geofence, koniec trialu, płatności — teraz lądują tylko w emailach. Dzwoneczek z licznikiem + dropdown
3TOTP 2FA z aplikacji (Google/Microsoft Authenticator)DB już ma totp_secrettotp_backup_codestwofa_method — brakuje tylko UI (QR do zeskanowania + weryfikacja). Jest już qrcode i otpauth w package.json
4Generowanie faktur PDFNIP i firma są zbierane, płatności są, ale faktur brak. pdfkit lub puppeteer → faktura po udanej płatności, download z panelu
5Eksport danych użytkownika (RODO)Już jest w adminie — brakuje dla użytkownika (prawo dostępu), przycisk „Pobierz moje dane” w Profilu
6Usunięcie konta (RODO)Obowiązek prawny — self-service w Profilu z potwierdzeniem hasła, kasuje usera i kaskadowo trackery

🚗 Priorytet B — użyteczne dla floty

#FunkcjaDlaczego
7Grupy trackerów (floty)Kategoryzacja: „Ciężarówki”, „Osobowe”. Filtrowanie na mapie, raporty per grupa
8Analityka zachowania kierowcyZ posiadanych danych GPS: przyspieszenia, ostre hamowanie, przekroczenia prędkości, ranking trackerów
9Scheduled reportsRaporty PDF co tydzień/miesiąc automatycznie na email (cron + pdfkit) — już jest /reports, brakuje scheduler
10Księga serwisowa pojazduHistoria przeglądów/napraw/tankowań per tracker + przypomnienia o terminach (OC, przegląd, wymiana oleju)
11POI / książka adresówZapisane miejsca na mapie (dom, biuro, magazyn) — dropdown w widoku i w alertach

🛡️ Priorytet C — bezpieczeństwo / ops

#FunkcjaDlaczego
12Dziennik nieudanych prób logowaniaTabela failed_logins z IP + user-agent, panel admina z filtrami i opcją blokady IP
13IP whitelist dla panelu adminaMiddleware sprawdzający req.ip przed requireAdmin — ochrona przed brute-force
14Log viewer w adminieTailowanie docker logs backend przez web UI — diagnostyka bez SSH. Express SSE + docker logs --tail --follow
15Status monitoringWidget w AdminDashboard: MQTT żyje? Redis ping? gps-server na porcie 5001 odpowiada?

🔌 Priorytet D — integracje

#FunkcjaDlaczego
16Menedżer webhookówUser konfiguruje URL + eventy (pozycja, alert, geofence enter/exit). Już jest /webhooks dla Stripe — rozszerzyć na customowe
17API rate limit per klucz + dashboard zużyciaWykres wywołań / 24h per klucz w AdminApiKeys
18Tracker sharing przez link + tokenJest /share/:token — brakuje UI generowania z wyborem długości (1h / 1d / tydzień) i ograniczeń (read-only mapa / z historią)
19Offline mapy na Androidziemapbox-sdk-js lub tile cache — dla terenów bez zasięgu

📱 Priorytet E — UX / wygląd

#FunkcjaDlaczego
20Responsywny dashboard mobileObecny jest desktop-only — hamburger menu, stackowane karty
21Wielojęzyczność (PL/EN/DE)Android już ma i18n.js, browser tylko PL — i18next + selektor w navbarze
22Broadcast do użytkownikówAdmin wysyła komunikat (baner pod topbarem lub toast) do wszystkich — np. planowana konserwacja
23Custom ikony trackerówUser wybiera emoji/kolor per tracker → widoczne na mapie zamiast domyślnego pina

💰 Priorytet F — monetyzacja

#FunkcjaDlaczego
24Program partnerski / referralsLink z kodem, po rejestracji → -10% dla polecającego i nowego. Tabela referrals, rozliczenie miesięczne
25WielowalutowośćKolumna currency w subscription_plans, exchange rate z NBP API, automatyczna konwersja
26Kupony rabatowePanel admina: utwórz kupon -20% na pierwszy rok, sprawdzenie przy checkout

Moja rekomendacja — next 3

Gdybym miał wybrać trzy na ten tydzień:

  1. Audit log (#1) — dziwnie, że go jeszcze nie ma; przy wielu adminach/resellerach konieczny
  2. Centrum powiadomień (#2) — realnie poprawia codzienne używanie (alerty lądują tylko w emailu)
  3. TOTP 2FA UI (#3) — DB już wszystko ma, to „tylko” 2 ekrany: włączenie z QR + weryfikacja przy logowaniu

Albo jeden konkretny biznesowy: faktury PDF (#4) — bez tego nie sprzedasz polskim firmom w ogóle.

Który klocek robimy?

← Aplikacje GPS: