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>
This commit is contained in:
commit
cec967f953
321 changed files with 80506 additions and 0 deletions
79
artefacte/README_LIVRARE.md
Normal file
79
artefacte/README_LIVRARE.md
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue