didi-lot3-frontend/artefacte/README_LIVRARE.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

79 lines
3.4 KiB
Markdown

# DiDi Lot 3 (Frontend) — Pachet de livrare
PNRR DIGI150 · contract 11.1.i3.c9 · Contract de furnizare nr. 19 · 17.07.2026
## Conținut
| Fișier | Descriere |
|---|---|
| `didi-frontend-web_lot3-1.0.docker.tar.gz` | Imaginea Docker a aplicației web (nginx + SPA build) |
| `didi-app-clossers.apk` | Aplicația mobilă Android (release, semnată cu cheie de test) |
| `didi-extension-clossers-v3.2.6.zip` | Extensia de browser Chrome/Edge (Manifest V3) |
Codul sursă complet: repo `didi-lot3-frontend/` (subfoldere `web/`, `android/didi-app-source/`,
`extension/`) + documentația de livrare în `docs/` (ghid de utilizare 05, matrice de
trasabilitate 06, raport de testare furnizor 07).
## Configurarea adresei platformei (per componentă)
Sursele NU conțin adrese hardcodate — adresa serverului DiDi se setează exclusiv în punctele
de configurare de mai jos.
### 1. Aplicația web — la build (build args)
```bash
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` → Kong și
`/auth` → Keycloak, prin rețeaua Docker `didi-network`). nginx-ul răspunde pe orice hostname
(`server_name _`).
**Rulare** (pe serverul platformei): `docker load < didi-frontend-web_lot3-1.0.docker.tar.gz`
apoi `docker compose -f docker-compose.local.yml up -d` (compose-ul e în rădăcina repo-ului).
### 2. Aplicația mobilă — la build (.env)
Fișierul `android/didi-app-source/.env` (model în `.env.example`):
```
EXPO_PUBLIC_DIDI_BASE_URL=http://<ADRESA>
```
Rebuild: `cd android/didi-app-source/android && ./gradlew assembleRelease` (toolchain-ul și
pașii compleți sunt în `HANDOFF_Lot3_Rebrand_Integrare.md`). APK-ul livrat este construit cu
adresa mediului de integrare.
### 3. Extensia de browser — fișierul `config.js`
Singurul loc cu adresa: `extension/config.js``DIDI_HOST_HTTP` / `DIDI_HOST_HTTPS`.
După modificare: reîncarcă extensia din `chrome://extensions`. Pe un mediu cu certificat TLS
valid, ambele valori se setează pe `https://…` (separarea HTTP/HTTPS există doar pentru
mediul LAN cu certificat autosemnat).
## Instalare rapidă componente client
- **Extensie:** dezarhivează zip-ul → `chrome://extensions` → Developer mode → Load unpacked →
folderul dezarhivat → butonul „Autentificare" (cont DiDi, fără chei API).
- **APK:** transfer pe telefon → instalare din surse necunoscute → Sign In cu contul DiDi.
Dispozitivul trebuie să aibă acces de rețea la adresa platformei.
## Observații
- APK-ul e semnat cu cheie de test — pentru publicare în Google Play se generează un keystore
de release. Identificatorul aplicației (`eu.didi365.mobile`) este namespace-ul istoric al
proiectului; schimbarea lui ar crea o aplicație nouă (reinstalare obligatorie pentru
utilizatori) și se face doar la publicarea în store, dacă se dorește.
- Extensia are ID stabil (`blcalchooinkphpnlkkhlklbmgppmnfm`, fixat prin cheia din manifest);
pe acest ID este configurat clientul OIDC `didi-extension` în Keycloak (realm `didi-clients`,
redirect `https://<id>.chromiumapp.org/*`). La schimbarea mediului, clientul Keycloak se
recreează identic pe noul realm/server.
- Fișierele istorice scoase din repo la curățenia din 17.07.2026 sunt păstrate în
`~/didi-lot3-frontend-arhiva/`.
## Sume de control (SHA-256)
Vezi `SHA256SUMS.txt` din acest folder.