# DiDi — Lot 3 (Frontend) · Livrare Platformă digitală inteligentă pentru prevenirea și combaterea dezinformării — **DiDi** PNRR DIGI150 · Contract de finanțare 11.1.i3.c9 · Contract de furnizare nr. 19 Componentele frontend ale platformei DiDi: **aplicație web**, **aplicație mobilă (Android)** și **extensie de browser (Chrome/Edge, Manifest V3)**, integrate cu backend-ul platformei (Lot 1 — AI, Lot 2 — Backend) prin API Gateway (Kong) și IAM (Keycloak, OIDC/OAuth2 + PKCE). ## Structura repo-ului | Cale | Conținut | |---|---| | `web/` | Aplicația web — React 18 + Vite + TypeScript (SPA), imagine nginx | | `android/didi-app-source/` | Aplicația mobilă — React Native + Expo SDK 54 (include proiectul nativ `android/` cu patch-urile de manifest) | | `extension/` | Extensia de browser — MV3, vanilla JS | | `docs/` | Documentația de livrare: 05 Ghid de utilizare · 06 Matrice de trasabilitate a cerințelor · 07 Raport de testare furnizor (md + docx, cu capturi încorporate) | | `artefacte/` | Livrabile binare: imagine Docker (tar.gz), APK, extensie (zip), `SHA256SUMS.txt`, `README_LIVRARE.md` | | `docker-compose.local.yml` | Deployment-ul aplicației web pe serverul platformei | | `build.sh`, `TESTING.md` | Utilitare de build / note de testare | ## Configurarea adresei platformei Sursele nu conțin adrese hardcodate. Adresa serverului DiDi se setează per componentă: 1. **Web** — la build: `docker build --build-arg VITE_API_URL= --build-arg VITE_KEYCLOAK_URL=https:///auth -t didi-frontend:local ./web` (VITE_API_URL gol = same-origin; nginx-ul din imagine proxează `/api`, `/agent-v3`, `/auth`) 2. **Mobil** — `android/didi-app-source/.env`: `EXPO_PUBLIC_DIDI_BASE_URL=http://` (model în `.env.example`; fișierul `.env` nu se versionează) 3. **Extensie** — `extension/config.js` (`DIDI_HOST_HTTP` / `DIDI_HOST_HTTPS`) Detalii complete de instalare/instanțiere: `artefacte/README_LIVRARE.md`. ## Build rapid ```bash # Web (imagine Docker) docker build --build-arg VITE_API_URL= --build-arg VITE_KEYCLOAK_URL=https:///auth \ -t didi-frontend:local ./web docker compose -f docker-compose.local.yml up -d # Mobil (APK release; necesită JDK 17 + Android SDK — vezi docs) cd android/didi-app-source && cp .env.example .env # completează adresa cd android && ./gradlew assembleRelease # Extensie: chrome://extensions → Developer mode → Load unpacked → folderul extension/ ``` ## Autentificare Toate cele 3 componente folosesc contul unic al platformei (Keycloak, realm `didi-clients`): clienți OIDC `didi-web-app`, `didi-mobile-app`, `didi-extension` (public, PKCE S256). Extensia are ID stabil `blcalchooinkphpnlkkhlklbmgppmnfm` (cheie în manifest) — pe el este înregistrat redirect-ul OIDC `https://.chromiumapp.org/*`. --- *Livrare Lot 3 · 17.07.2026*