ZPI Day

AIPF

AI Present Finder - Aplikacja webowa znajdująca dopasowane prezenty, wykorzystująca analizę mediów społecznościowych i konwersacyjną sztuczną inteligencję

Członkowie:   Szymon, Bartosz, Marcin oraz Dawid
Opiekun:   Marcin Jodłowiec

Cele projektu

Cele biznesowe:

  • Technologiczny: Stworzenie i wdrożenie w pełni funkcjonalnej aplikacji webowej wykorzystującej analizę danych z mediów społecznościowych i konwersacyjną AI do generowania spersonalizowanych rekomendacji prezentów.
  • Użytkowy: Zredukowanie czasu i stresu użytkowników związanego z procesem wyboru prezentów.
  • Jakościowy: Zwiększenie trafności i poziomu personalizacji rekomendowanych prezentów w porównaniu do manualnych metod poszukiwań.

Rezultaty: Opracowanie aplikacji webowej "AI Present Finder", składającej się z:

  • Modułu inteligentnej analizy mediów społecznościowych do ekstrakcji zainteresowań.
  • Konwersacyjnego asystenta AI (chatbota) do prowadzenia wywiadu z użytkownikiem.
  • Systemu inteligentnych rekomendacji zintegrowanego z wieloma platformami e-commerce.
  • Stworzenie i wdrożenie architektury backendowej opartej na mikroserwisach, komunikujących się asynchronicznie (RabbitMQ) i zgodnie z zasadami CQRS oraz event-driven architecture.
  • Wdrożenie aplikacji (MVP, a następnie wersji finalnej) w środowisku produkcyjnym z wykorzystaniem konteneryzacji (Docker) i automatyzacji CI/CD (Github Actions) oraz środowiska Coolify.

Metryki i weryfikacja:

  • Weryfikacja funkcjonalna: Ukończenie zrealizowanie zaplanowanych funkcjonalności.
  • Weryfikacja jakości rekomendacji: Sukces będzie mierzony przez trafność propozycji, weryfikowaną poprzez zbieranie feedbacku od użytkowników.
  • Weryfikacja techniczna: Pomyślne wdrożenie aplikacji w docelowym środowisku, a także poprawność działania integracji z zewnętrznymi API i systemami.

Opis projektu

Projekt dotyczy powszechnego, społecznego problemu wyboru i zakupu prezentów dla rodziny, przyjaciół lub innych znajomych. Proces ten jest często czasochłonny i odbywa się pod presją zbliżających się okazji, takich jak urodziny czy święta.

Głównym problemem, który projekt ma rozwiązać, jest trudność w wymyślaniu trafionych i spersonalizowanych prezentów. Obecny, manualny proces generuje dla użytkowników szereg negatywnych doświadczeń:

  • Jest czasochłonny: Wymaga długiego zastanawiania się, poszukiwania inspiracji i przeglądania wielu ofert.
  • Jest stresujący i frustrujący: Brak pomysłów prowadzi do stresu, a presja czasu potęguje frustrację.
  • Jest nieefektywny: Często kończy się wyborem nietrafionego lub generycznego prezentu, który nie sprawia obdarowanemu prawdziwej radości.

Większość społeczeństwa wymyśla prezenty w pełni samodzielnie i manualnie, przeglądając sklepy internetowe, sekcje z promocjami lub chodząc po galeriach handlowych. Ciężko jest znaleść prezent w ten sposób, jest to czasochłonne i ciężko znaleść dopasowany prezent do osoby. Niektórzy inspirują się (często sponsorowanymi) artykułami typu "pomysły na prezent dla mamy", które są bardzo generyczne. Nieliczne i niepopularne wyszukiwarki oparte na LLM-ach zazwyczaj nie proponują konkretnych prezentów, jedynie pomysły, które potem należy samemu znaleść.

Nasz projekt to w pełni inteligentny system proponujące konkretne oferty z platform e-commerce, który zbiera dane o obdarowanym z kilku źródeł, generuje pomysły na prezenty i wyszukuje konkretne oferty, które można następnie przeglądać za pomocą filtrów i zapisywać na później.

Artefakty

  • System webowy "AI Present Finder", składający się z dwóch głównych części:

    1. Aplikacja Frontendowa: Interfejs użytkownika zbudowany w technologii ReactJS oraz Vite, umożliwiający interakcję z chatbotem, zlecanie przeglądanie i filtrowanie rekomendacji.
    2. System Backendowy: Złożony z mikroserwisów (napisanych w NestJS), odpowiedzialnych za analizę danych, logikę chatbota, komunikację z zewnętrznymi API oraz zarządzanie bazą danych PostgreSQL.
  • Algorytm rekomendacji prezentów: Kluczowy element systemu, który na podstawie zebranych danych generuje spersonalizowane propozycje.

Narzędzia wspierające:

  • Skonfigurowane środowisko deweloperskie i produkcyjne oparte na konteneryzacji (pliki docker-compose.yml, Dockerfile).
  • Zautomatyzowane procesy CI/CD zdefiniowane w ramach Github Actions, służące do budowania, testowania i wdrażania aplikacji.

Charakterystyka:

  • Funkcjonalność: Aplikacja będzie automatycznie analizować publiczne dane z mediów społecznościowych oraz prowadzić interaktywny wywiad z użytkownikiem w celu zebrania informacji o osobie obdarowywanej. Na tej podstawie będzie generować listę spersonalizowanych propozycji prezentów wraz z bezpośrednimi linkami do ofert na platformach e-commerce.
  • Docelowe środowisko wdrożeniowe: Aplikacja zostanie wdrożona jako zestaw skonteneryzowanych (Docker) mikroserwisów, z procesem wdrożenia zarządzanym przez platformę Coolify i zautomatyzowanym przez Github Actions.

Odbiorcy

Użytkownicy końcowi: Głównymi beneficjentami są osoby poszukujące prezentów dla swoich znajomych i rodziny. Projekt wpłynie na nich poprzez:

  • Oszczędność czasu: Automatyzacja procesu analizy i rekomendacji znacząco skróci czas potrzebny na znalezienie idealnego prezentu.
  • Redukcję stresu: Aplikacja dostarczy konkretnych propozycji, eliminując frustrację związaną z brakiem pomysłów.
  • Poprawę jakości wyboru: Dzięki analizie danych, rekomendacje będą bardziej spersonalizowane i trafione, co zwiększy satysfakcję zarówno kupującego, jak i obdarowanego.

Zespoły wewnętrzne: W kontekście tego projektu, "zespołem wewnętrznym" są jego twórcy (Szymon Kowaliński, Bartosz Gotowski, Dawid Chudzicki, Marcin Dolatowski). Odniosą oni korzyści w postaci:

  • Zdobycia praktycznego doświadczenia w budowie złożonego systemu opartego o nowoczesne technologie (mikroserwisy, AI, architektura sterowana zdarzeniami).
  • Stworzenia kompletnego portfolio projektowego, od koncepcji po wdrożenie produkcyjne.

Organizacje zewnętrzne: Pośrednimi beneficjentami mogą stać się platformy e-commerce (np. OLX, Allegro, Amazon, eBay), z którymi aplikacja będzie zintegrowana. Dzięki generowaniu linków do konkretnych ofert, projekt może stać się źródłem wartościowego ruchu i zwiększyć sprzedaż na tych platformach.

Technologie

Nest.js Docker ESLint Figma Git GitHub-Actions GitHub HTML5 React Vite.js Vite TypeScript Jest Linux Markdown Node.js NPM Visual-Studio-Code-(VS-Code) OpenAPI PostgresSQL RabbitMQ Swagger Tailwind-CSS Google-Cloud Google XML YAML UNIX Unified-Modelling-Language-(UML) Twitter Chrome CSS3 DBeaver Homebrew Nano Windows-11 Ubuntu Oh-my-zsh
Mapa drogowa
Repozytoria