EN
← Wszystkie projekty

W produkcji · 2026

Sales Ops PWA

Aplikacja PWA, która zastąpiła arkusze w cyklu spotkań handlowych firmy sprzedaży bezpośredniej.

  • Aplikacje biznesowe
Ekran „Dziś”: postęp spotkań własnych i dzisiejsze spotkanie z przyciskiem zamknięcia
Kalendarz miesięczny z oznaczonymi dniami spotkań i listą spotkań wybranego dnia
Statystyki tygodnia: odbywalność, skuteczność, cel spotkań własnych i podział według statusu

Prywatna aplikacja PWA dla firmy sprzedaży bezpośredniej. Prowadzi cały cykl spotkania handlowego — od umówienia przez call center, przez wizytę przedstawiciela w terenie, po statystyki dla dyrekcji — i codziennie korzysta z niej cały zespół.

Problem

Spotkania umawiano i rozliczano we współdzielonych arkuszach. Statusy się rozjeżdżały, przedstawiciele w terenie nie mieli wygodnego dostępu z telefonu, a dyrekcja liczyła skuteczność ręcznie.

Rozwiązanie

Aplikacja z czterema rolami — telemarketer, koordynator, przedstawiciel i dyrektor — działająca na telefonie jak natywna, z powiadomieniami push i e-mail. Statystyki odbywalności i skuteczności liczą się same, a cała logika biznesowa siedzi w jednym pakiecie, do którego aplikacje nie mogą obejść dostępu.

  1. Telemarketer umawia spotkanie
  2. Koordynator przydziela przedstawiciela
  3. Przedstawiciel w terenie ustawia status
  4. Statystyki: odbywalność i skuteczność
Cykl spotkania handlowego
role z osobnymi uprawnieniami
4
przesuwna sesja z listą urządzeń
48 h
migracje bazy, wyłącznie addytywne
24

Architektura

Monorepo z trzema częściami: aplikacja web (Next.js), worker do powiadomień i zadań cyklicznych oraz pakiet core z modelem danych i logiką biznesową. Reguła ESLint blokuje dostęp do bazy spoza core, więc każda operacja przechodzi przez tę samą walidację. Produkcja działa w Docker Compose za Caddy, z kopiami zapasowymi i runbookiem bezpiecznych wdrożeń.

Bezpieczeństwo

  • Dziennik logowań tylko do dopisywania, chroniony triggerem w bazie
  • Loginy w dzienniku przechowywane wyłącznie jako HMAC
  • Blokada po nieudanych próbach logowania, która przetrwa restart serwera
  • Przesuwne sesje 48-godzinne z możliwością wylogowania wybranych urządzeń