- 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>
57 lines
2.8 KiB
Markdown
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*
|