← Wróć do case studies
Case study — aplikacja full-stack Wdrożone

Ręcznie składane oferty stały się prowadzonym, spójnym z brandem kreatorem.

Handlowcy dystrybutora gadżetów reklamowych składali każdą ofertę ręcznie w Wordzie i Excelu — bez wspólnego katalogu, z niespójnymi cenami i PDF-ami, które odpływały od brandu. Zbudowałem aplikację webową, która zamienia to w prowadzony przepływ: przeszukaj katalog, porównaj wycenione scenariusze, wyeksportuj brandowany PDF w kilka minut.

  • Od katalogu do brandowanego PDF w minuty.

  • 3 poziomy marży stosowane zawsze tak samo.

  • 1 wspólny katalog znormalizowany od różnych dostawców.

Problem

Każdy handlowiec budował oferty po swojemu — w Wordzie, w Excelu, w mailu — wyciągając produkty z tego dokumentu dostawcy, który akurat miał pod ręką. Nie było jednego katalogu, więc ten sam produkt za każdym razem pojawiał się inaczej wyceniony i opisany.

Marże liczono ręcznie i łatwo było się pomylić, a gotowe dokumenty rzadko pasowały do brandingu firmy. Złożenie jednej oferty było wolne, podatne na błędy i niemożliwe do utrzymania spójnie w całym zespole.

Co zbudowałem

Aplikację webową (Next.js, App Router, TypeScript) z przeszukiwalnym katalogiem produktów zasilanym adapterami nad kilkoma API dostawców, znormalizowanym do jednego wspólnego kształtu. Na wierzchu prowadzony kreator ofert: brief, wybór produktów, a potem dwa lub trzy wycenione scenariusze, które klient może porównać obok siebie.

Wycena idzie przez kaskadowy silnik marży działający na trzech poziomach — oferta, scenariusz i linia — jako procent albo stała kwota, z kosztem wewnętrznym trzymanym poza widokiem dla klienta. Gotowa oferta renderuje się do brandowanego PDF przez headless Chromium, więc każda wycena wychodzi tak samo wyglądająca. Silnik marży i mappery dostawców są pokryte testami jednostkowymi, a całość dostarczana jest jako obraz Dockera.

Stack

Next.js · TypeScript · React · Prisma · PostgreSQL · Tailwind · shadcn/ui · Playwright · Vitest · Docker

Otwórz demo na żywo

Demo na żywo — zanonimizowany przykładowy katalog, ten sam prowadzony przepływ i silnik marży co w dostarczonej aplikacji. Działa w całości w Twojej przeglądarce.

Zarezerwuj darmowe 30 min