Înapoi la portofoliu
PlatformăClient realReprezentativ

BCA Solution

Platformă web și PWA care centralizează companiile, utilajele, abonamentele de suport, ticketurile tehnice, conversațiile cu agenții, documentele și comenzile de piese, completate de un asistent AI bazat pe manualele și istoricul fiecărui caz.

BCA Solution

Stack principal

Node.js
Express 5
Sequelize 6
MySQL
REST APIJSON Web Tokensbcryptexpress-validatorMulterSocket.IOServer-Sent EventsOpenAI Responses APIOpenAI Vector StoresOpenAI File SearchMultimodal AISvelteKit 2Svelte 5TypeScriptTailwind CSS 4Vite 7Progressive Web AppService WorkerWeb Push / VAPIDNodemailer / SMTPWinstonPM2

Provocarea

Produsul trebuia să lege coerent companiile, utilizatorii, utilajele și dreptul de acces la suport cu un proces tehnic care include conversații, fotografii, documente și comenzi de piese. Clientul, agentul și administratorul au trasee și responsabilități diferite, iar asistentul AI trebuie să primească exact contextul utilajului și al ticketului fără a amesteca documentele între cazuri. Provocarea principală a fost transformarea unei activități fragmentate între telefon, email, PDF-uri și fotografii într-un flux urmărit end-to-end.

Soluția

Backend-ul Node.js folosește Express 5, Sequelize și MySQL, cu rute și interfețe separate pe roluri și un model relațional pentru utilizatori, companii, utilaje, abonamente, cereri de activare, ticketuri, mesaje, atașamente, manuale și comenzi. Regulile de business verifică utilajul și abonamentul activ înainte de deschiderea suportului. Frontend-ul SvelteKit folosește un client API comun, store-uri reactive și componente reutilizabile pentru portalurile client, agent și administrator. Integrarea OpenAI este separată în servicii pentru upload, vector stores, file search, input multimodal, Responses API, streaming și cleanup, iar operația de inițializare are un status persistent urmărit prin polling. Fișierele sunt stocate pe server, emailurile sunt trimise prin SMTP, iar notificările pot fi livrate în aplicație, prin Web Push și prin Socket.IO.

Complexitate notabilă

BCA Solution digitalizează relația post-vânzare dintre operatorii de utilaje și echipa care le oferă suport tehnic. După înregistrare, confirmarea emailului și aprobarea administrativă, clientul își poate gestiona profilul, companiile și utilajele asociate. Fiecare echipament păstrează datele de identificare, firma și proprietarul, imaginile, manualele tehnice și istoricul abonamentelor, iar deschiderea unei cereri de suport este permisă numai pentru un utilaj propriu care are un abonament activ.

Fluxul de suport reunește într-un singur caz numărul ticketului, utilajul afectat, descrierea problemei, prioritatea, starea, fișierele și conversația dintre client și echipa tehnică. Clientul poate urmări solicitările sale într-un portal dedicat, în timp ce agenții și administratorii folosesc zone separate pentru triere, asignare, schimbarea priorității și a statusului, consultarea documentelor și gestionarea comenzilor de piese rezultate din intervenție. Comenzile sunt legate de ticket și utilaj și pot conține mai multe repere, cantități, coduri și estimări de preț.

Asistentul AI este integrat în zona de lucru a agentului și administratorului. La inițializarea unui caz, backend-ul construiește contextul din datele utilajului, manualele PDF, imaginile echipamentului, atașamentele ticketului și transcriptul conversației. Manualele pot fi reutilizate automat pentru utilaje cu aceeași marcă și același model. Fișierele sunt încărcate în OpenAI, conversația primește un vector store pentru file search, iar imaginile relevante pot fi incluse ca input multimodal. Starea inițializării este urmărită în baza de date, răspunsurile folosesc Responses API cu chaining între mesaje și sunt transmise incremental către interfață prin Server-Sent Events.

Frontend-ul este construit cu SvelteKit 2, Svelte 5 și TypeScript și oferă interfețe responsive distincte pentru client, agent și administrator. Aplicația este configurată ca PWA instalabilă și include service worker, notificări persistente, actualizări în timp real prin Socket.IO, Web Push prin VAPID și emailuri SMTP pentru confirmarea contului, resetarea parolei și aprobarea utilizatorului. Deploymentul demonstrat de repository folosește build Vite și procese PM2 separate pentru frontend și API.

Rezultate cheie

  • 3 roluri operaționale: client, agent și administrator, cu portaluri, navigație și acțiuni diferențiate
  • Registru B2B pentru companii și utilaje, cu date de identificare, proprietar, firmă, imagini și documentație tehnică
  • Abonamente istorice per utilaj, cu flux separat de solicitare, aprobare sau respingere și urmărirea expirării
  • Acces la suport condiționat de proprietatea utilajului și existența unui abonament activ
  • Ticketuri tehnice cu număr unic, 4 niveluri de prioritate, 4 stări operaționale, căutare, filtre și paginare
  • Conversații persistente client–suport, cu actualizări în timp real și atașamente separate pentru formular și chat
  • Bibliotecă de manuale PDF cu upload multiplu, download, înlocuire, ștergere și asociere la utilaje
  • Reutilizarea automată a manualelor pentru utilaje cu aceeași marcă și același model
  • Asistent AI contextualizat per ticket cu manuale, imagini, atașamente și transcriptul conversației
  • Vector store și istoric AI per conversație, cu Responses API, file search, input multimodal și streaming SSE
  • Comenzi de piese legate de ticket și utilaj, cu mai multe articole, cantități, coduri și estimări de preț
  • Notificări persistente, Web Push, emailuri tranzacționale și aplicație PWA instalabilă

Proiecte asemănătoare

Vrei ceva similar?

Începe cu wizard-ul de estimare — răspunzi la câteva întrebări și primești un range de preț + timeline realist.