DEVCRAFTED.PL
Case study

System zarządzania sprawami w Laravelu i Vue.js: terminy, dokumenty i rozliczenia w jednym miejscu

System do prowadzenia spraw klientów: terminy, dokumenty i rozliczenia w jednym miejscu

Projekt objęty NDA

O projekcie

System, w którym organizacja usługowa prowadzi sprawy klientów indywidualnych i firm: kartoteka, sprawy z terminami, generowanie dokumentów, rozliczenia, korespondencja e-mail i panele, w których klienci sami sprawdzają swoje sprawy. Dołączyłem do projektu po zespole, który zbudował pierwszą wersję, i rozwijałem backend w Laravelu we współpracy z programistami frontendu.

Wyzwanie

Organizacja usługowa prowadząca sprawy klientów indywidualnych i firm pracowała we własnym systemie, którego pierwszą wersję zbudował inny zespół. System miał przejmować coraz więcej codziennej pracy: pilnowanie terminów, przygotowywanie dokumentów, rozliczenia z klientami i obsługę telefonów – dla pracowników, klientów i współpracowników zewnętrznych, każdy z innym zakresem dostępu. Każda zmiana w sprawie musiała zostawać w historii, a rozwój iść równolegle z bieżącą pracą zespołu.

Moja rola

  • Backend Developer
  • Frontend Developer (Vue.js)
  • Integracje API

Projekt objęty NDA: bez nazwy klienta, zrzutów ekranu i kodu.

Zakres funkcjonalny

  • Pulpit terminów
    Sprawy wymagające uwagi w jednym miejscu: z brakami, oczekujące na decyzję, z kończącymi się terminami i bez aktywności.
  • Kartoteka spraw
    Sprawy z typami, statusami, tagami, komentarzami, osobami odpowiedzialnymi i pełną historią zmian.
  • Generowanie dokumentów
    Wzory dokumentów ze znacznikami, pliki PDF dla jednej sprawy lub zbiorczo dla wielu spraw (PDF albo ZIP).
  • Rozliczenia
    Wpłaty i koszty spraw z saldem oraz zestawienia należności z filtrami i eksportem do CSV.
  • Integracje
    Dane firm z rejestru GUS, rozpoznawanie dzwoniącego w centrali telefonicznej i poczta e-mail.
  • Panele i uprawnienia
    Osobne konta dla pracowników, klientów indywidualnych, klientów firmowych i współpracowników zewnętrznych, z uprawnieniami po stronie serwera.

Rozwiązanie

Pulpit spraw wymagających uwagi

Odpowiadałem za pulpit, który zastąpił ręczne przeglądanie list: sprawy z brakami, oczekujące na decyzję, z kończącymi się terminami i bez aktywności. Reguły terminów liczy backend, a wybrane pola można poprawić bez otwierania karty sprawy.

Kartoteka spraw z pełną historią zmian

Sprawa łączy klienta, firmę, instytucję i komplet terminów. Rozwijałem ten moduł o konfigurowalne typy i statusy spraw, tagi, wewnętrzne komentarze, osobę współodpowiedzialną i archiwizację; każda zmiana trafia do dziennika z wartością przed i po.

Generowanie dokumentów z wzorów

Wzory dokumentów przypisane do typów spraw wypełniają się danymi klienta, firmy i sprawy. Rozwijałem moduł o zbiorcze generowanie dokumentów dla wielu spraw (jeden PDF albo archiwum ZIP) i automatyczny zapis plików w aktach sprawy.

Rozliczenia i zestawienia finansowe

Wpłaty i koszty każdej sprawy z wyliczanym saldem. Odpowiadałem za zestawienia wpłat i należności ze wszystkich spraw – z filtrami, wyszukiwaniem, statusem rozliczenia i eksportem do CSV, który zawiera dokładnie to, co widać na przefiltrowanej liście.

Integracja z GUS i centralą telefoniczną

Rozwijałem integrację z rejestrem GUS: dane firmy uzupełniają się po numerze NIP lub REGON. Odpowiadałem za integrację z centralą telefoniczną – przy połączeniu system rozpoznaje dzwoniącego po numerze i podaje osobę odpowiedzialną oraz status ostatniej sprawy.

Panele klientów i współpracowników

Pracownicy, klienci indywidualni, klienci firmowi i członkowie ich zespołów logują się do osobnych obszarów z własnymi uprawnieniami. Rozwijałem ten obszar o konta współpracowników zewnętrznych z zawężonym dostępem, firmy powiązane i podsumowanie spraw w panelu klienta firmowego.

Architektura

  • Backend w Laravelu udostępnia REST API, a frontend to aplikacja SPA w Vue.js – obie warstwy rozwijali równolegle osobni programiści.
  • Warstwy kontroler, serwis za interfejsem i repozytorium, z walidacją w Form Requests, obiektami DTO i zasobami API.
  • Kilka typów kont z osobnym uwierzytelnianiem tokenami JWT oraz role i uprawnienia sprawdzane w politykach po stronie serwera i odwzorowane w interfejsie.
  • Obserwatory modeli zapisują dziennik zmian kluczowych obiektów, a miękkie usuwanie zachowuje dane i historię spraw.
  • Dokumenty PDF generowane z szablonów HTML ze znacznikami, eksport CSV z odczytem danych partiami i polecenia Artisan do zadań porządkowych.
  • Czat wewnętrzny i powiadomienia w czasie rzeczywistym przez WebSocket oraz wiadomości e-mail generowane z szablonów.

Mój wkład

  • Dołączyłem do projektu po zespole, który zbudował pierwszą wersję systemu, i przez kolejne lata rozwijałem backend w Laravelu jako główny programista po stronie serwera.
  • Odpowiadałem za nowe moduły: pulpit terminów, typy i statusy spraw, rozliczenia, tagi i komentarze, zbiorcze generowanie dokumentów, integrację z centralą telefoniczną, konta zewnętrzne i firmy powiązane.
  • Współtworzyłem frontend w Vue.js przy pierwszych nowych modułach, a w kolejnych zadaniach odpowiadałem za API dla widoków budowanych przez programistów frontendu – każde zadanie na parze gałęzi backend i frontend.
  • Rozwijałem i naprawiałem istniejące funkcje: wyszukiwanie, filtrowanie i sortowanie list, uprawnienia dla kilku typów kont, eksport dużych zbiorów danych, wysyłkę e-mail oraz integrację z GUS.

Technologie

  • Laravel
  • PHP
  • MySQL
  • Vue.js
  • Vuex
  • REST API
  • JWT
  • WebSocket
  • PDF
  • GUS API
  • CSV

Masz system po poprzednim zespole i szukasz kogoś, kto go dalej rozwinie? Napisz. Odpowiem w ciągu 24 godzin.

Napisz do mnie
Autopromocja

Nabyto.pl – e-booki i workbooki PDF po polsku

Konkretne materiały w PDF: pobierasz od razu po zakupie, drukujesz albo wypełniasz na ekranie. Bez DRM, bez subskrypcji i bez zakładania konta.

Odwiedź Nabyto.pl
Kontakt

Masz projekt albo problem z aplikacją? Napisz, odpowiem w ciągu 24 godzin.

Napisz do mnie
Telefon