Přeskočit obsah

Přehled solution

Bartech.Mobile.Eva je enterprise solution složená ze 7 projektů sdílejících společnou datovou vrstvu.


Mapa solution

Eva.slnx
└── src/
    ├── Eva.Data                  # Sdílená datová vrstva (core)
    ├── Eva.Mobile.WebApi         # REST API backend
    ├── Eva.Manager               # Blazor Server administrace
    ├── Eva.Mobile                # .NET MAUI mobilní aplikace
    ├── Eva.Mobile.Pwa            # Blazor WebAssembly PWA (Bartech Bonus)
    ├── Eva.Print                 # Tisková Worker Service
    └── Eva.Database              # PostgreSQL inicializační skripty
tests/
    ├── Eva.Print.Tests
    └── Eva.Mobile.WebApi.Tests
scripts/                          # PowerShell build a deploy skripty
.docker/                          # Dockerfiles a Compose soubory

Eva.Data — Sdílená datová vrstva

Knihovna použitá všemi ostatními projekty. Tvoří základ systému.

Obsahuje: - EvaDataContext — EF Core DbContext s 27 DbSet entitami - Models/ — 27 entitních tříd - Services/ — BaseDataService<T> + 18+ specializovaných služeb - Common/ — Result<T> pattern, pomocné třídy - Enums/ — FilterOperatorEnum a další výčtové typy - Extension metody AddEvaDataServices() a AddUserServices()


Eva.Mobile.WebApi — REST API

ASP.NET Core 9 REST API: - 16+ controllerů, 70+ endpointů - Swagger / Scalar pro dokumentaci (Development) - JWT autentizace (BaseApiController); od v1.0.43 vyžadována globální FallbackPolicy — všechny endpointy vyžadují autentizovaný požadavek bez nutnosti [Authorize] na každém controlleru - Dapper pro výkonnostní dotazy - Kestrel HTTPS (certifikát dockerdev.pfx pro vývoj)

Nové v1.0.43

  • CurrencyTypesController — číselník měn pro PWA formulář nového majetku
  • DeviceAuthController (/api/device-auth) — QR/DeviceToken přihlášení pro PWA i MAUI (generate-code, activate, exchange, tokens)
  • WebApiTenantAccessor — čte tenant_id z JWT claimů, takže EF Core tenant filtry fungují i mimo Blazor circuit (Eva.Manager)
  • MultiTenancy.Enabled je v produkčním appsettings.json WebApi nastaveno na true

Eva.Manager — Blazor Server administrace

Webová administrace s DevExpress komponentami: - 40+ Razor komponent a stránek - DevExpress gridy, formuláře, grafy - DevExpress Reporting (PDF generování) - Serilog logging - Lokalizace: cs-CZ, en-US, sk-SK, de-DE - 6 vizuálních témat


Eva.Mobile — .NET MAUI

Mobilní aplikace pro terénní práci: - Android / iOS / Windows - MVVM s CommunityToolkit.Mvvm - Skenování čárových kódů (Camera.MAUI + ZXing) - RFID (Unitech SDK) - HTTP komunikace přes RestService


Eva.Print — Tisková Worker Service

Background service pro zpracování tiskové fronty: - .NET Worker SDK - Čte PrintRequest záznamy z DB - Odesílá ZPL/EPL na síťové tiskárny (TCP port 9100) - Závislost na privátním balíčku Libs.Bartech.Printing.Core


Eva.Mobile.Pwa — Eva Mobile PWA

Blazor WebAssembly Progressive Web App pro běžné zaměstnance: - Přehled vlastního majetku (My Assets), návrh nového majetku (New Asset) - Osobní inventury (My Inventories) — potvrzení svěřeného majetku - Převodky (Transfers) a Vyřazení (Disposals) — přehled otevřených položek uživatele - Fotodokumentace majetku - Přihlášení heslem, PIN kódem nebo QR/DeviceToken kódem (sdílený mechanismus s Eva.Mobile MAUI) - Instalovatelná jako PWA (offline podpora) - Sdílí REST API (Eva.Mobile.WebApi) s nativní mobilní aplikací

Od v1.0.43 běží první produkční nasazení na https://meva.xtrace.cz (viz Nasazení).


Jak projekty spolupracují

                    ┌─────────────────────────────────┐
                    │          Eva.Data                │
                    │  EvaDataContext + Services       │
                    └──────────────┬──────────────────┘
                                   │ (sdílená vrstva)
          ┌────────────────────────┼────────────────────────┐
          │                        │                        │
          ▼                        ▼                        ▼
   Eva.Mobile.WebApi         Eva.Manager              Eva.Print
   (REST API)                (Blazor Server)          (Worker)
          │
          │ HTTP/REST
          ├─────────────────────┐
          ▼                     ▼
   Eva.Mobile               Eva.Mobile.Pwa
   (MAUI)                   (Blazor WASM)