Better regulation website

Better Regulation

wyjątkowo złożony projekt na Drupalu

Serwis Better Regulation to system stworzony do katalogowania i wyszukiwania dokumentów formalno-prawnych oraz powiadamiania o zmianach wprowadzonych w tych dokumentach. Jest używany przez duże firmy i organizacje w UK i Irlandii.

Better regulation website
Better regulation website

Cel i wyzwania

Założeniem projektu było zbudowanie systemu pozwalającego na łatwe przeglądanie i zarządzanie tysiącami dokumentów oraz wyszukiwanie i natychmiastową wysyłkę wielu maili powiadamiających klientów o zmianach w obserwowanych przez nich dokumentach lub zakresie dokumentów.

Podczas pracy napotkaliśmy kilka znaczących wyzwań, którym musieliśmy stawić czoła. Są to:

Icon migration

Klient chciał jak najszybciej przejść ze starego systemu na nowy. Z naszej strony wiązało się to z migracją ogromnej ilości danych jednocześnie.

Cały development został tak zorganizowany, aby nie kolidował z jednoczesnym redagowaniem strony. Zaraz po migracji oraz stworzeniu podstawowej funkcjonalności administracyjnej klient sprawnie przeniósł się na nowy system, podczas gdy development nadal trwał. Tworzyliśmy i wdrażaliśmy nowe funkcjonalności prawie codziennie, w taki sposób, aby nie narazić na przestój całego zespołu edytorów pracujących w systemie.

Chcąc dostarczyć użytkownikom jak najlepsze doświadczenie korzystania z serwisu, zespół Better Regulation nieustająco dokonywał iteracji, zmieniał i zwiększał wymagania. Naszym zadaniem było pozostać elastycznym wobec oczekiwań klienta oraz szybkie dostosowanie się do jego nowych potrzeb i priorytetów.

Icon iterations
Icon drupal extension

Wymagania klienta znacznie wykraczały poza to, co oferuje rdzeń Drupala i dostępne moduły. Poradziliśmy sobie z wyzwaniem poprzez rozszerzenie funkcjonalności i potencjału Drupala w bardzo wysokim stopniu. Dodatkowo podzieliliśmy duże funkcjonalności na mikrosystemy.

Duże zasoby danych wymagają niestandardowych rozwiązań serwerowych. Aby korzystanie z serwisu było przyjemne i bezawaryjne, musieliśmy opracować skalowalne środowisko produkcyjne i testowe. Wykorzystaliśmy do tego celu infrastrukturę AWS.

Icon infrastructure
0
Liczba migrowanych wpisów
0
Liczba tabel
0
GB danych
0
Godzin migracji
Better regulation structure

Kilka funkcjonalności

Icon search
Wyszukiwanie

Wyjątkowo złożone wyszukiwanie, uwzględniające operatory logiczne i znaki specjalne. Użytkownik może zapisywać parametry wyszukiwania.

Better regulation website
Better regulation website
Icon mail
Powiadomienia

Rozbudowane powiadomienia mailowe: nowe wyniki w zapisanych przez użytkownika wyszukiwaniach, zmiany w dokumentach dodanych do ulubionych, przeglądy bazujące na preferencjach użytkownika. Maile wysyłane o konkretnej godzinie dnia.

Icon print
Drukowanie

Dostosowane do potrzeb funkcjonalności drukowania, włącznie z drukowaniem do różnych formatów (html, email, pdf, doc) i możliwością drukowania wybranych części dokumentów.

Better regulation website
Better regulation website
Icon lock
Uprawnienia

Bardzo rozbudowane uprawnienia użytkowników, zależne od wybranych modułów i krajów.

Masowa edycja dokumentów - Views Bulk Operation

Umożliwia edycję wielu dokumentów jednocześnie. Przy dużej liczbie danych znacznie ułatwia pracę redaktorów.

0
Liczba wpisów
0
Ilość pól
0
Ilość typów zawartości
Eksportowanie wyników

Eksportowanie wyników wyszukiwania do pliku Excel i Word.

Crawler

Bot skanujący dokumenty w poszukiwaniu błędnych linków i tym podobnych.

Narzędzie marketingowe

W celu promocji serwisu umożliwienie ładowania dokumentów z ograniczonymi zasobami dla niezalogowanych.

Technologie

Icon docker
Docker

pozwala nam nie tylko na elastyczną zmianę wersji lub wymianę dowolnej technologii użytej na stronie, ale daje również możliwość przetestowania architektury lokalnie (na komputerze developera).

Projekt liczy ponad 25 kontenerów wykorzystywanych do m.in.: generowania i kolejkowania wysyłki bardzo dużej liczby e-maili, poszukiwanie błędnych linków i plików w treści podstron, regenerowania danych na potrzeby tworzenia plików HTML, PDF i DOC.

Icon solr
Solr

wyszukiwanie treści to jedna z ważniejszych funkcjonalności w serwisie. Solr pozwala nam dynamicznie dostosowywać wyszukiwarkę do wymagań klienta.

Icon nodeJS
Node.js

powiadamianie użytkowników o nowych wpisach w czasie rzeczywistym z wykorzystaniem WebSocketów.

Icon rabbitMQ
RabbitMQ

infrastruktura pozwalająca na wysyłkę bardzo dużej ilości wiadomości z powiadomieniami i newsletterami.

Icon codeception
Codeception i Selenium do testów

testy automatyczne są niezbędne przy tak dużym projekcie. Przed każdym wdrożeniem jesteśmy w stanie sprawdzić, czy nasze zmiany nie wprowadziły nowych błędów na stronę.

Icon new relic and blackfire
New Relic i Blackfire

monitorują wydajność aplikacji, co pozwala nam na bardzo szybkie znalezienie problemów z wydajnością i natychmiastową reakcję.

Icon zabbix
Zabbix

monitoruje parametry naszych serwerów, takie jak ilość wolnego miejsca, czy użycie CPU/RAM.

Proces developmentu

W celu zapewnienia szybkości, zwinności oraz reagowania na zmiany użyliśmy ciągłego podejścia do procesu developmentu wspieranego przez Gita, Jenkinsa i Fabrica. Każda funkcjonalność i zmiana była tworzona na samodzielnym branchu, osobno testowana i weryfikowana przez zespół QA na dedykowanej kopii środowiska produkcyjnego. Porcje zmian były automatycznie zbierane i prezentowane klientowi do testów. Po zatwierdzeniu zmiany były wdrażane na produkcję. Ten proces mógł być często powtarzany. Czasem od początkowego pomysłu do wdrożenia na produkcję mijało zaledwie kilka godzin, bez ponoszenia znacznego ryzyka.

Zostały użyte testy automatyczne, żeby zapewnić brak regresji w kodzie.

Wdrożenie i support

Kiedy serwis został udostępniony użytkownikom, byliśmy obecni na każdym kroku, aby zapewnić, że wszystko pójdzie gładko. Kilka pierwszych dni jest zawsze kluczowe, by upewnić się, że nie ma żadnych ukrytych błędów lub innych problemów.

Support jest prowadzony w tygodniowym sprincie. Po opublikowaniu nowych funkcjonalności na środowisku testowym i zatwierdzeniu przez klienta zmiany są wdrażane raz w tygodniu w godzinach wieczornych.

Opinia klienta

I could not rate Droptica highly enough. They have genuinely helped our dream service become a reality.

0
developerów i tester
0
Suma godzin od początku projektu
0
Średni czas pracy w miesiącu

Podsumowanie

Dzięki opisanemu wyżej procesowi jesteśmy od 2015 roku w stanie szybko reagować na nowe fale wymagań i zmian wynikających z obserwacji zachowań użytkowników serwisu.

Zobacz online

Wprowadź z nami w życie swój projekt na Drupalu

Zarezerwuj bezpłatne spotkanie, aby omówić swoje potrzeby i pomysły.

Skontaktuj się z nami i zobacz, co możemy wspólnie zrobić, żeby osiągnąć Twoje cele.