Platforma SaaS do obsługi usług B2B

Aplikacja SaaSProjekt poufny

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.
Dokumenty konta usługi, rozliczenia i klucz dostępu

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.