Aplikacje edukacyjne

Rozwój i utrzymanie aplikacji opartych na serwisach rozproszonych. Migracja części platformy do chmury AWS. Przygotowanie do migracji płatności do Stripe.

React
Node.js
TypeScript
PHP
Drupal
AWS
MySQL
PostgreSQL
Atlas MongoDB
Redis
CQRS
RabbitMQ
Dlaczego?

Aby dostarczać cyfrowe produkty i usługi edukacyjne dla szkół i nauczycieli na całym świecie.

Co?

Stworzenie e-magazynu oraz platformy z materiałami dydaktycznymi.

Jak?

Rozwój i utrzymanie aplikacji, migracja do chmury i przygotowanie migracji płatności do Stripe.

Opis

Naszym klientem jest brytyjska firma z branży edukacyjnej dostarczająca sprawdzone rozwiązania cyfrowe (produkty i usługi) dla szkół i nauczycieli na całym świecie. Nasi programiści pracowali głównie przy dwóch produktach  – cyfrowej wersji Tes Magazine oraz platformie do sprzedaży materiałów dydaktycznych.

Cyfrowa wersja magazynu to platforma, która oferuje szeroki wybór profesjonalnych artykułów dla nauczycieli. Platforma częściowo jest dostępna za darmo. Natomiast pełny dostęp do zawartości oraz możliwość korzystania z zaawnasowanych funkcji wymaga subskrypcji.  

Platforma do sprzedaży materiałów dydaktycznych zawiera ogromną (ponad 900 tys.) bazę scenariuszy i narzędzi. Baza tworzona jest przez nauczycieli dla nauczycieli. Każda osoba będąca na platformie może udostępniać odpłatnie swoje, wypróbowane materiały dydaktyczne. Tym samym wesprzeć kolegów po fachu w uatrakcyjnieniu ich zajęć lekcyjnych.

  • Zakres

    Frontend & Backend Development, Infrastruktura chmurowa, Migracja, Bazy danych, QA

  • Branża

    Edukacja

  • Region / Kraj:

    Wielka Brytania

Problem

E-magazyn oraz platforma z materiałami dydaktycznymi to aplikacje o rozległej architekturze i gęstej siatce połączeń między funkcjami. Z obu produktów codziennie korzysta tysiące użytkowników na całym świecie. Aby zapewnić bezproblemowy dostęp, potrzebne są ciągłe prace związane z utrzymaniem aplikacji. Czyli aktualizacją oprogramowania oraz zapewnieniem właściwych rodzajów testów automatycznych – nie tylko end-to-end, ale także regresji i wydajnościowych.  

Z powodu rozwijania aplikacji Tes Magazyn o nowe funkcje oraz by odpowiedzieć na potrzeby związane z lepszym User Experience (np. dostosowaniem platformy dla osób z niepełnosprawnościami), interface aplikacji wymagał odświeżenia.

Chęć migracji platformy z materiałami dydaktycznymi, wywołała potrzebę opracowania dokumentacji technicznej, planu migracji oraz przygotowania samego systemu.

Planowane oraz wprowadzane zmiany wpływały na wiele obszarów biznesowych. Dlatego kluczowa była zwinna i efektywna komunikacja pomiędzy zespołem deweloperskim FINGO, zewnętrznymi dostawcami rozwiązań IT, a także osobami pracującymi po stronie klienta. Warto dodać, że po stronie FINGO pracowało dwóch liderów technicznych.

Problem
Rozwiązanie

Cyfrowy magazyn bazuje na oprogramowaniu Open Source Drupal. W ramach prac utrzymaniowych nasi developerzy zaktualizowali system, podnosząc oprogramowanie z Drupal 7 oraz 8 do Drupal 9.

Po dokonaniu analizy technicznej zaproponowali migrację systemu płatności i obsługi subskrypcji do usługi Stripe. Chcąc zapewnić łatwiejsze skalowanie serwisów oraz większą odporności elementów pośrednich (np. baza danych czy zewnętrzne serwisy API) na błędy wdrożyli architekturę CQRS.  

Programiści FINGO wdrożyli także wiele zmian związanych z interfejsem platformy. Przykładowo dodali możliwość zarządzania newsletterami przez samego użytkownika. Umożliwili udostępnienia płatnych artykułów za darmo znajomym, którzy nie mają konta na platformie. Wprowadzili różne poziomy dostępności do artykułów w zależności czy użytkownik założył i opłacił subskrypcję. Co więcej, odświeżyli wygląd platformy.

Aby zminimalizować liczbę pojawiających się błędów, wykorzystano narzędzia do wizualnych testów regresji robiące screenshoty. Po porównaniu zdjęć strony przed i po aktualizacji, widać co się zmieniło i gdzie może występować ewentualny błąd (regresja).  

Platforma do sprzedaży materiałów dydaktycznych oparta jest na rozległej architekturze mikroserwisowej (blisko 40 niezależnie działających microserwisów). Nasi programiści trzymali pieczę nad stałą i rzetelną aktualizacją oraz nisko awaryjnym utrzymaniem systemu.  

Ze względu na planowaną migrację platformy, nasi programiści przeanalizowali zastaną architekturę. Stworzyli wizualizację architektury w modelu C4. Analiza wykazała, że przetwarzane i przechowywane dane są rozproszone po wielu systemach i niezbędne jest również rozrysowanie map procesów.  

Kolejnym krokiem było opracowanie planu migracji systemu. Wdrożenie API oraz wdrożenie automatycznych testów API umożliwiających szybkie wykrywanie pojawiających się błędów.

Rezultaty projektu
Project results

Zapewnienie bezpieczeństwa oraz ciągłości działania systemu opartego o architekturę microserwisową przez świadczenie wysokiej jakości prac utrzymaniowych.

Zadbanie o jakość kodu architektury opartej na eventach poprzez wdrażanie wielu różnorodnych testów automatycznych.

Przygotowanie rozległej aplikacji pod migrację poprzez analizę, opracowanie dokumentacji i sposobu testowania.

Zmniejszenie prawdopodobieństwa wystąpienia nieoczekiwanych zdarzeń poprzez dbałość o odpowiednio wczesną i transparentną komunikację z różnymi zespołami pracującymi po stronie klienta.

Zapewnienie łatwiejszej skalowalności serwisów oraz odporności na błędy elementów pośrednich, dzięki wdrożeniu architektury CQRS.