CASE STUDY

Stworzyliśmy aplikację do przeprowadzania badań rynku

Udostępnij

Klient

Stratega

Branża

Badania Rynku

Państwo

Polska

Technologie

Patrz niżej

O kliencie

Stratega jest wiodącą firma badawczą świadczącą swoje usługi na terenie kilku krajów Europy Środkowej i Wschodniej. Specjalizują się w wielu rynkach, takich jak FMCG, opieka zdrowotna, farmaceutyczny, samochodowy, bankowy, ubezpieczeniowy, sektor energetyczny, telekomunikacyjny i dobra trwałe, oferując badania jakościowe i ilościowe.

Wyzwanie

Stratega chciała rozszerzyć swoją działalność i zdobyć rynek poprzez zautomatyzowanie niektórych swoich procesów biznesowych i połączenie ich w jedno narzędzie, które mogłoby być dostępne nie tylko dla ich pracowników, ale także dla innych firm badawczych poprzez platformę za opłatą. Rozwiązanie to miało być innowacyjne, ponieważ nie istniał wówczas produkt, który pozwalałby na przeprowadzenie tak wielu rodzajów badań. Obiecano im także finansowanie w fazie rozruchowej pod warunkiem, że rozwiązanie będzie gotowe w ciągu trzech miesięcy – co stało się jednym z głównych wymagań.
Narzędzie zostało nazwane Interviewly.

Cel

Dostarczyć w ciągu 3 miesięcy produkt umożliwiający:

  • Przeprowadzenie kilku rodzajów badań rynku
  • Wybór jednego z 15 języków interfejsu użytkownika
  • Zapraszanie respondentów za pomocą e-maili
  • Ocena respondentów za pomocą ankiet
  • Planowanie spotkań
  • Przeprowadzanie wideokonferencji z udziałem wielu użytkowników, nagrywaniem, udostępnianiem ekranu, dwiema ścieżkami dźwiękowymi (jedną dla gospodarza, drugą dla tłumacza) i transkrypcją
  • Gromadzenie danych respondentów
  • Dostępność dla różnych rodzajów urządzeń (komputery osobiste, tablety, telefony komórkowe)
  • Zarządzanie firmami i ich zespołami, przyznawanie im różnych zestawów uprawnień
  • Powiadamianie użytkowników o wydarzeniach

Stos technologiczny

React.js, Node.js, TypeScript, Python, PHP, MySQL, REST API, AWS (EC2, S3, ECR, RDS, EFS), RabbitMQ, Docker, OpenAI Whisper, Janus Gateway, Lime Survey, FFMPEG

Proces

Z uwagi na tak krótki termin wykonania, musieliśmy działać szybko, ale mądrze. Aby uniknąć implementowania wszystkiego od zera, postanowiliśmy zbadać istniejące rozwiązania i zintegrować je z naszym projektem.

Najpierw poszukiwaliśmy sposobów implementacji funkcji wideokonferencji.
Naszym początkowym pomysłem było użycie technologii WebRTC dostarczonej przez WebAPI, ale nasza inwestygacja wykazała, że nie jest ona zadowalająca ze względu na połączenia typu peer-to-peer, które rosłyby wykładniczo wraz z liczbą strumieni. Gotowe rozwiązania, albo nie pozwalały na dostosowanie do własnej marki, albo nie były wystarczająco konfigurowalne, aby umożliwić przekazywanie dwóch ścieżek dźwiękowych.
Te warunki zmusiły nas do wyboru Janus Gateway, który z jednej strony jest uważany za jedną z najlepszych bram multimedialnych na rynku, ale z drugiej wymaga przynajmniej podstawowej wiedzy o technologii WebRTC i nie jest łatwy do opanowania.

Następnie musieliśmy zadowolić potrzebę generacji i oceny ankiet.
Lime Survey to narzędzie o otwartym kodzie źródłowym, którego klient już używał. Biorąc pod uwagę to zaznajomienie i dostępność interfejsu API, postanowiliśmy je wybrać. Niestety nie wszystkie metody były dostępne co ograniczało nasz postęp. Aby przezwyciężyć te problemy, musieliśmy zmodyfikować kod źródłowy, aby dostosować dane do naszych potrzeb i odwrotną inżynierię struktur XML odpowiedzialnych za generowanie pytań. Na szczęście wystapiło więcej problemów z tym wyborem.

Aby zapewnić sukces takiej przedsięwzięcia, wybraliśmy wyjątkowo uzdolnionego projektanta UI/UX, który pracował nad tak znanymi produktami jak Cyberpunk. Przygotował on projekty z 3 punktami przekroju, które były dostosowane do komputerów, tabletów i urządzeń mobilnych.

Wiedząc, że produkt ma być rozwijany i skalowany dalej, wybraliśmy AWS jako dostawcę chmury, aby ustawić podstawy projektu i uniknąć migracji serwerów w przyszłości.

Szybko po wyjaśnieniu pozostałych szczegółów produktu przystąpiliśmy do planowania struktur danych odzwierciedlających abstrakcyjne jednostki. Liczne relacje wymagały użycia baz danych relacyjnych. Wybraliśmy MySQL ze względu na jego prostotę i hostowaliśmy go na AWS RDS. Stworzyliśmy 20 tabel, aby kategoryzować wszystkie dane.

Gdy styl został wybrany i dostarczone zostały pierwsze projekty, przystąpiliśmy do implementacji interfejsu użytkownika i testów z danymi przykładowymi. Po zakończeniu prac nad front-endem zajęliśmy się back-endem.

Z wykorzystaniem bramy Janus stworzyliśmy klienta wideokonferencji i jego serwerową wersję do dynamicznego tworzenia spotkań, ich nagrywania i zamykania, gdy nie są już potrzebne. API i większość usług back-endowych zostały zaimplementowane w Node.js, ale ponieważ Whisper oferuje tylko integrację z Pythonem, napisaliśmy usługi transkrypcji w języku Python. Kilka funkcji były obciążające dla procesora i blokujące wątki, dlatego aby zapewnić wydajność systemu i responsywność API, wydzieliliśmy je do swoich mikrousług. Najbardziej wymagające z nich otrzymały własne instancje EC2 z dodatkową mocą obliczeniową i pamięcią. Dzięki EFS możliwy był dostęp do „ciężkich” plików nagraniowych we wszystkich instancjach EC2 bez dodatkowego transferu. Po przetworzeniu wszystkie pliki trafiały do kubełków S3. Kolejnym problemem, który musieliśmy rozwiązać, był dostęp do dostarczania e-maili. Biorąc pod uwagę ogromną ilość wysyłanych wiadomości, musieliśmy ograniczyć ich liczbę, aby zapewnić dostarczenie ich bez oznaczania jako spam.

Rezultat

Po zaledwie 3 miesiącach intensywnej pracy dostarczyliśmy wersję MVP w pełni responsywnej aplikacji internetowej, która oferuje wszystkie żądane funkcje, dzięki czemu klient był w stanie pozyskać finansowanie i kontynuować dalszy rozwój.
Obecnie nadal pracujemy nad jej ulepszaniem, aby przekształcić to MVP w produkt najwyższej jakości z jeszcze większą ilością funkcji, takich jak blog czy system zarządzania treścią (CMS).

Stwórzmy razem coś innowacyjnego!

Umów się na bezpłatną konsultację już teraz i sprawdź, jak możemy Ci pomóc.