Platforma SaaS do obsługi usług B2B
Firma świadcząca usługę technologiczną potrzebowała miejsca, w którym klienci biznesowi mogą zarządzać dostępem, sprawdzać wykorzystanie i rozliczać subskrypcję. Powstała aplikacja łącząca te zadania z narzędziami administracyjnymi dla osób obsługujących usługę.
Projekt obejmował rozpoznanie potrzeb, ustalenie zasad działania kont i rozliczeń, projekt interfejsu i integracji, a następnie iteracyjne wdrażanie oraz utrzymanie. Zmiany można sprawdzać w środowisku podglądowym przed udostępnieniem ich użytkownikom produkcyjnym.
- Dla kogo
- Firmy korzystające z usługi oraz osoby odpowiedzialne za jej obsługę i administrację.
Osoba i konto firmowe
Klient biznesowy potrzebuje zarówno dostępu do technologii, jak i informacji potrzebnych do codziennej pracy: aktywnego planu, dostępnych limitów, kluczy API i dokumentów rozliczeniowych. Dane te powstają w różnych częściach systemu i usługach zewnętrznych.
Istotne było odróżnienie osoby logującej się od konta, do którego należą zasoby. Dzięki temu reguły dostępu i operacje można odnosić do właściwego konta firmowego, a nie wyłącznie do bieżącej sesji użytkownika.
Zakres odpowiedzialności
Atomic Concept odpowiada za rozpoznanie potrzeb, projekt domeny, interfejsu i API oraz rozwój, wdrożenie i utrzymanie aplikacji.
- Dostęp do konta
- Logowanie bez hasła przez link wysyłany na adres e-mail upraszcza rozpoczęcie pracy i powrót do panelu.
- Klucze i wykorzystanie
- Klient zarządza kluczami API oraz sprawdza zużycie usługi i limity związane z planem.
- Rozliczenia
- Integracja ze Stripe obsługuje subskrypcje, przejście do portalu klienta i dostęp do faktur.
- Administracja
- Osoby obsługujące usługę mają narzędzia do sprawdzania kont, wykorzystania i ustawień planu.

Do kogo należą zasoby?
Schemat pokazuje różnicę między osobą korzystającą z panelu a kontem, którego dotyczą zasoby i rozliczenia.
- Osoba
- Loguje się i wykonuje dozwolone operacje.
- Konto firmowe
- Stanowi kontekst dostępu do zasobów.
- Zasoby konta
- Obejmują plan, limity, klucze i dokumenty rozliczeniowe.
- Obsługa usługi
- Sprawdza konta i ustawienia planów.
Od ustaleń do codziennej obsługi
Prace rozpoczęły się od ustalenia, kto wykonuje poszczególne czynności, do kogo należą dane i jakie stany rozliczeń wpływają na dostęp. Na tej podstawie powstały widoki, kontrakty API i integracje potrzebne klientom oraz administratorom.
Funkcje były rozwijane etapami. Poza pracą w panelu aplikacja obsługuje operacje na zasobach wykonywane asynchronicznie, których wynik nie musi być dostępny w czasie pojedynczego żądania. Środowisko podglądowe z oddzielną bazą pozwala sprawdzać zmiany przed publikacją produkcyjną.
Audyt i diagnozowanie incydentów
Wspólna obsługa żądań API zbiera uwierzytelnianie, walidację i odpowiedzi błędów w jednym miejscu. Ułatwia to stosowanie tych samych zasad w różnych operacjach i sprawdzanie, czy użytkownik ma dostęp do zasobu należącego do konta.
Zdarzenia audytowe i incydenty serwerowe mają osobne przeznaczenie. Pierwsze pomagają prześledzić wybrane działania, drugie są zapisywane w bazie na potrzeby diagnozy. Raportowanie diagnostyczne po odpowiedzi oraz ograniczanie częstotliwości e-maili operacyjnych pomagają przekazywać informacje o problemach bez mnożenia powiadomień.
- Dane i własność
- PostgreSQL i Prisma przechowują dane kont, zasobów oraz wykorzystania, a zasady aplikacji określają, kto może nimi zarządzać.
- Płatności
- Stripe odpowiada za przepływy subskrypcji i portal rozliczeniowy, a aplikacja uwzględnia stan planu w dostępie do usługi.
- Zadania w tle
- Operacje na zasobach są rozdzielone od krótkich żądań użytkownika, co pozwala obsługiwać pracę wymagającą więcej czasu.
- Diagnostyka
- Oddzielenie audytu od incydentów pomaga wybrać informacje odpowiednie do wyjaśnienia działania lub błędu.
Dwa rodzaje zapisu
Zestawienie wyjaśnia, jaką rolę pełnią zapisy audytowe i informacje o incydentach w obsłudze platformy.
- Zdarzenie audytowe
- Pomaga prześledzić wybrane działanie.
- Incydent
- Zapisuje informacje potrzebne do diagnozy problemu.
Technologie i zastosowanie
- Next.js, React i TypeScript
- Panel i logika aplikacji.
- PostgreSQL i Prisma
- Dane kont i operacji.
- Stripe
- Subskrypcje, portal klienta i faktury.