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
57
README.md
Normal file
57
README.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# 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*
|
||||
Loading…
Add table
Add a link
Reference in a new issue