didi-lot3-frontend/README.md
Top Clossers cec967f953 Livrare Lot 3 (Frontend): aplicație web, aplicație mobilă Android, extensie browser
- Surse complete web (React/Vite) + mobil (React Native/Expo) + extensie (MV3)
- Documentație de livrare: ghid utilizare, matrice trasabilitate cerințe, raport testare furnizor
- Artefacte binare: imagine Docker didi-frontend:lot3-1.0, APK, extensie v3.2.6 + SHA256SUMS
- Configurare adresă platformă externalizată (build args / .env / config.js)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 12:40:40 +03:00

57 lines
2.8 KiB
Markdown

# 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://<ADRESA>/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://<ADRESA>`
(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://<ADRESA>/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://<id>.chromiumapp.org/*`.
---
*Livrare Lot 3 · 17.07.2026*