← Wszystkie projekty

Tryb dualny · 2025 – w toku

S-Print v4

Przebudowa platformy Société des Grands Projets, na której wykonawcy kontraktów składają zgłoszenia, z Java/Vue na Symfony i React.

S-Print v4

Historia

S-Print to platforma, którą SGP udostępnia partnerom kontraktowym do zgłaszania i kontroli ich danych: działalności gospodarczej i miejsc pracy utworzonych przy budowie Grand Paris Express oraz bezpieczeństwa na budowach. Śledzi precyzyjne zobowiązania kontraktów, takie jak zarezerwowanie co najmniej 20 % kwoty dla MŚP i 10 % godzin dla osób oddalonych od rynku pracy.

Wersja 3 opiera się na Javie i Vue.js. Wersja 4, którą współtworzę, zastępuje ją Symfony i API Platform po stronie serwera oraz TypeScript i React po stronie interfejsu. Cel: zastąpić pliki Excel wysyłane przez firmy ergonomicznym interfejsem wprowadzania danych z kontrolowanymi słownikami oraz zautomatyzować przekazywanie danych do narzędzia analitycznego Cockpit. Chodzi też o unowocześnienie bazy technicznej, zmniejszenie długu i ułatwienie zmian.

Jestem odpowiedzialny za rozwój w zespole S-Print jednostki Rozwoju. Odtwarzam, funkcjonalność po funkcjonalności, to, co robi wersja 3: strony i komponenty React/TypeScript (lista i wyszukiwanie firm, przeglądanie danych o wypadkowości, listy i formularze śladu gospodarczego, tworzenie kontraktów), wielokrotnego użytku mechanizm wywołań API z czystą obsługą błędów, zmiany w usługach Symfony i ich testy API. Przeglądam kod, piszę i uruchamiam testy, dokumentuję i na zmianę prowadzę zwinne ceremonie.

Dopóki v4 nie jest kompletna, v3 pozostaje na produkcji: muszę więc zawsze analizować istniejący system, by niczego nie pominąć. Jeden z moich celów z opiekunem: przyczynić się do wydania wersji 4.0.0 i aktywnie uczestniczyć w przeglądach kodu.

Co z tego wynoszę

Przebudowywać, niczego nie psując: zrozumieć starą wersję, czysto ją przepisać, porównać pole po polu. Za każdym polem formularza stoi realne zobowiązanie wobec lokalnych miejsc pracy i małych firm, więc poprawność danych jest priorytetem.