Szwajcarska platforma edutech
Projekt: Opracowaliśmy we współpracy z szwajcarskim startupem edutech platformę edukacyjną online dla szkół, uczelni i przedsiębiorstw. Celem tej aplikacji typu SaaS jest zrewolucjonizowanie szwajcarskiego systemu edukacji i znacząca poprawa jakości doświadczenia edukacyjnego.
Czas trwania: 1 rok, od kwietnia 2022 do marca 2023 roku
Współpraca: Rozszerzony zespół programistyczny, w której udział wziął główny programista ze Szwajcarii oraz 3 starszych programistów i jeden młodszy programista z Wietnamu. Razem wzmocniliśmy szwajcarski zespół programistyczny. Nasi programiści byli częścią zespołów Scrum i brali udział we wszystkich spotkaniach zespołowych, w tym codziennych spotkaniach, planowaniu, przeglądach i retrospektywach.
Technologie: Stworzyliśmy platformę od podstaw, korzystając z najnowszych standardów branżowych dla Frontendu, Backendu i DevOps, aby dostarczyć nowoczesne i skalowalne oprogramowanie typu SaaS dla szkół i uczelni.
W Frontendzie programiści użyli React z Next.js do interfejsu użytkownika. Wykorzystaliśmy biblioteki React do uwierzytelniania i innych najlepszych praktyk w celu zapewnienia bezpieczeństwa i zmniejszenia ilości przesyłanych danych między Frontendem a Backendem.
W Backendzie używaliśmy Java Spring z Hibernate i Kafka do przesyłania zdarzeń w czasie rzeczywistym między mikroserwisami. W niektórych przypadkach korzystaliśmy także z Golang i GraphQL. Ponieważ wcześniej używaliśmy Keycloak w innych projektach, wybraliśmy to narzędzie ponownie do uwierzytelniania i autoryzacji.
Warto zaznaczyć, że programiści pracowali zarówno nad Backendem, jak i Frontendem w zespołach odpowiedzialnych za konkretne funkcje użytkownika, a nie nad konkretnymi technologiami. Pair-programming umożliwił mniej doświadczonym programistom pracę z obcym składem technologicznym.
Ponieważ szybkie wprowadzanie nowych funkcji dla zainteresowanych szkół i uczelni było kluczowe dla sukcesu startupu, główny programista i jeden z seniorów byli częścią dedykowanego zespołu DevOps, który miał na celu zautomatyzowanie procesu wdrożenia i umożliwienie szybkiego wdrażania nowych wersji kilka razy dziennie. Zespół DevOps wspierał również architekturę mikroserwisów i zajmował się wdrożeniem za pomocą Ansible, Docker i Github Actions, a także monitorowaniem za pomocą Prometheus i Grafana. Dostarczyli oni zespołom narzędzia Logstash, ElasticSearch i Kibana do wizualizacji logów i analizy błędów.