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 majetkuDeviceAuthController(/api/device-auth) — QR/DeviceToken přihlášení pro PWA i MAUI (generate-code,activate,exchange,tokens)WebApiTenantAccessor— čtetenant_idz JWT claimů, takže EF Core tenant filtry fungují i mimo Blazor circuit (Eva.Manager)MultiTenancy.Enabledje v produkčnímappsettings.jsonWebApi nastaveno natrue
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)