# brittosmonteiro/inmeta-react-native architecture

> Architecture diagram of the GitHub repository brittosmonteiro/inmeta-react-native, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/brittosmonteiro/inmeta-react-native
- Repository: https://github.com/brittosmonteiro/inmeta-react-native

## Overview

Ordens de Serviço is an offline-first mobile work-order manager. Users list orders, inspect details, create or edit orders, and delete them; mutations choose local storage or the API based on connectivity. The README also documents status changes and automatic sync: reconnect triggers a sync that pushes local changes, fetches remote changes, and applies them locally. The workflow is grounded in the supplied source index and excerpts; some sync and screen details are documented but their full implementations were not excerpted.

Main entry points: [`src/app/work-order/details/[id].tsx`](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/work-order/details/%5Bid%5D.tsx) (Order details), [`src/hooks/work-orders/useManageWorkOrder.ts`](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useManageWorkOrder.ts) (Create and update), [`src/database/repositories/workOrdersRepository.ts`](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/repositories/workOrdersRepository.ts) (Order repository), [`src/services/work-orders/workOrdersService.ts`](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/work-orders/workOrdersService.ts) (Order API service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Mobile experience"]
  node_list["Order list<br/>[index.tsx]"]
  node_details["Order details<br/>[&#91;id&#93;.tsx]"]
  node_manage["Manage order screen<br/>[index.tsx]"]
  node_form["Order form<br/>[FormCard.tsx]"]
  node_detail_view["Detail presentation<br/>[Card.tsx]"]
  node_completion["Completion display<br/>[Completed.tsx]"]
end

subgraph group_workflows["Work-order workflows"]
  node_store["Order state<br/>[workOrderStore.ts]"]
  node_manage_hook["Create and update"]
  node_delete_hook["Delete order"]
  node_get_hook["Fetch order<br/>[useGetWorkOrder.ts]"]
  node_domain["Order types<br/>[work-order.ts]"]
  node_validation["Form validation<br/>[schema.ts]"]
  node_connectivity["Connectivity check<br/>[isOnline.ts]"]
end

subgraph group_local["Offline data"]
  node_realm[("Realm database<br/>[index.ts]")]
  node_orders_repo["Order repository"]
  node_metadata_repo["Sync metadata"]
  node_sync_schemas["Realm schemas<br/>[WorkOrderSchema.ts]"]
  node_metadata_schema["Metadata schema"]
end

subgraph group_sync["Synchronization"]
  node_reconnect["Reconnect trigger"]
  node_sync["Sync coordinator<br/>[syncWorkOrders.ts]"]
  node_push["Push local changes"]
  node_sync_api["Remote sync service"]
end

subgraph group_integration["Backend integration"]
  node_service["Order API service"]
  node_api["Work-orders API"]
end

node_user(("User"))

node_user -->|"views orders"| node_list
node_user -->|"opens details"| node_details
node_user -->|"manages orders"| node_manage
node_list -->|"reads state"| node_store
node_details -->|"loads order"| node_get_hook
node_details -->|"requests deletion"| node_delete_hook
node_details -->|"changes order"| node_manage_hook
node_details -->|"renders"| node_detail_view
node_details -->|"renders"| node_completion
node_manage -->|"renders"| node_form
node_manage -->|"loads edit data"| node_get_hook
node_manage -->|"submits"| node_manage_hook
node_manage_hook -->|"checks status"| node_connectivity
node_manage_hook -->|"validates with"| node_validation
node_manage_hook -->|"writes offline"| node_orders_repo
node_manage_hook -->|"writes online"| node_service
node_delete_hook -->|"checks status"| node_connectivity
node_delete_hook -->|"deletes offline"| node_orders_repo
node_delete_hook -->|"deletes online"| node_service
node_get_hook -->|"fetches order"| node_service
node_store -->|"reads local data"| node_orders_repo
node_store -->|"fetches remote data"| node_service
node_orders_repo -->|"reads and writes"| node_realm
node_metadata_repo -->|"reads and writes"| node_realm
node_realm -->|"opens with schema"| node_sync_schemas
node_realm -->|"opens with schema"| node_metadata_schema
node_reconnect -->|"triggers sync"| node_sync
node_sync -->|"pushes changes"| node_push
node_sync -->|"fetches remote changes"| node_sync_api
node_sync -->|"applies remote data"| node_orders_repo
node_sync -->|"tracks last sync"| node_metadata_repo
node_push -->|"sends local changes"| node_service
node_sync_api -.->|"syncs orders"| node_api
node_service -->|"sends and fetches orders"| node_api
node_domain -->|"types records"| node_orders_repo

click node_list "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/index.tsx"
click node_details "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/work-order/details/%5Bid%5D.tsx"
click node_manage "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/work-order/manage-work-order/index.tsx"
click node_form "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/components/manage-work-order/FormCard.tsx"
click node_detail_view "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/components/details/Card.tsx"
click node_completion "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/components/details/Completed.tsx"
click node_store "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/store/workOrderStore.ts"
click node_manage_hook "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useManageWorkOrder.ts"
click node_delete_hook "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useDeleteWorkOrder.ts"
click node_get_hook "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useGetWorkOrder.ts"
click node_domain "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/domain/dtos/work-order.ts"
click node_validation "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/domain/manage-work-order/schema.ts"
click node_realm "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/index.ts"
click node_orders_repo "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/repositories/workOrdersRepository.ts"
click node_metadata_repo "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/repositories/syncMetadataRepository.ts"
click node_sync_schemas "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/schemas/WorkOrderSchema.ts"
click node_metadata_schema "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/schemas/SyncMetadataSchema.ts"
click node_reconnect "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useSyncOnReconnect.ts"
click node_sync "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/sync/syncWorkOrders.ts"
click node_push "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/sync/pushLocalChanges.ts"
click node_sync_api "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/work-orders/workOrdersSyncService.ts"
click node_service "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/work-orders/workOrdersService.ts"
click node_connectivity "https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/utils/network/isOnline.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_list,node_details,node_manage,node_form,node_detail_view,node_completion,node_user toneBlue
class node_store,node_manage_hook,node_delete_hook,node_get_hook,node_domain,node_validation,node_connectivity toneAmber
class node_realm,node_orders_repo,node_metadata_repo,node_sync_schemas,node_metadata_schema toneMint
class node_reconnect,node_sync,node_push,node_sync_api toneRose
class node_service,node_api toneIndigo
```

## Components

### Mobile experience

- [Order list](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/index.tsx): `src/app/index.tsx`
- [Order details](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/work-order/details/%5Bid%5D.tsx): `src/app/work-order/details/[id].tsx`
- [Manage order screen](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/app/work-order/manage-work-order/index.tsx): `src/app/work-order/manage-work-order/index.tsx`
- [Order form](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/components/manage-work-order/FormCard.tsx): `src/components/manage-work-order/FormCard.tsx`
- [Detail presentation](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/components/details/Card.tsx): `src/components/details/Card.tsx`
- [Completion display](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/components/details/Completed.tsx): `src/components/details/Completed.tsx`

### Work-order workflows

- [Order state](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/store/workOrderStore.ts): `src/store/workOrderStore.ts`
- [Create and update](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useManageWorkOrder.ts): `src/hooks/work-orders/useManageWorkOrder.ts`
- [Delete order](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useDeleteWorkOrder.ts): `src/hooks/work-orders/useDeleteWorkOrder.ts`
- [Fetch order](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useGetWorkOrder.ts): `src/hooks/work-orders/useGetWorkOrder.ts`
- [Order types](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/domain/dtos/work-order.ts): `src/domain/dtos/work-order.ts`
- [Form validation](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/domain/manage-work-order/schema.ts): `src/domain/manage-work-order/schema.ts`
- [Connectivity check](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/utils/network/isOnline.ts): `src/utils/network/isOnline.ts`

### Offline data

- [Realm database](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/index.ts): `src/database/index.ts`
- [Order repository](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/repositories/workOrdersRepository.ts): `src/database/repositories/workOrdersRepository.ts`
- [Sync metadata](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/repositories/syncMetadataRepository.ts): `src/database/repositories/syncMetadataRepository.ts`
- [Realm schemas](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/schemas/WorkOrderSchema.ts): `src/database/schemas/WorkOrderSchema.ts`
- [Metadata schema](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/database/schemas/SyncMetadataSchema.ts): `src/database/schemas/SyncMetadataSchema.ts`

### Synchronization

- [Reconnect trigger](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/hooks/work-orders/useSyncOnReconnect.ts): `src/hooks/work-orders/useSyncOnReconnect.ts`
- [Sync coordinator](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/sync/syncWorkOrders.ts): `src/services/sync/syncWorkOrders.ts`
- [Push local changes](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/sync/pushLocalChanges.ts): `src/services/sync/pushLocalChanges.ts`
- [Remote sync service](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/work-orders/workOrdersSyncService.ts): `src/services/work-orders/workOrdersSyncService.ts`

### Backend integration

- [Order API service](https://github.com/brittosmonteiro/inmeta-react-native/blob/main/src/services/work-orders/workOrdersService.ts): `src/services/work-orders/workOrdersService.ts`
- **Work-orders API**

### Other components

- **User**

## Connections

- User → Order list: views orders (evidence: `README.md`)
- User → Order details: opens details (evidence: `README.md`)
- User → Manage order screen: manages orders (evidence: `README.md`)
- Order list → Order state: reads state (evidence: `src/app/index.tsx`)
- Order details → Fetch order: loads order (evidence: `src/app/work-order/details/[id].tsx`)
- Order details → Delete order: requests deletion (evidence: `src/app/work-order/details/[id].tsx`)
- Order details → Create and update: changes order (evidence: `src/app/work-order/details/[id].tsx`)
- Order details → Detail presentation: renders (evidence: `src/app/work-order/details/[id].tsx`)
- Order details → Completion display: renders (evidence: `src/app/work-order/details/[id].tsx`)
- Manage order screen → Order form: renders (evidence: `src/app/work-order/manage-work-order/index.tsx`)
- Manage order screen → Fetch order: loads edit data (evidence: `src/app/work-order/manage-work-order/index.tsx`)
- Manage order screen → Create and update: submits (evidence: `src/app/work-order/manage-work-order/index.tsx`)
- Create and update → Connectivity check: checks status (evidence: `src/hooks/work-orders/useManageWorkOrder.ts`)
- Create and update → Form validation: validates with (evidence: `src/hooks/work-orders/useManageWorkOrder.ts`)
- Create and update → Order repository: writes offline (evidence: `src/hooks/work-orders/useManageWorkOrder.ts`)
- Create and update → Order API service: writes online (evidence: `src/hooks/work-orders/useManageWorkOrder.ts`)
- Delete order → Connectivity check: checks status (evidence: `src/hooks/work-orders/useDeleteWorkOrder.ts`)
- Delete order → Order repository: deletes offline (evidence: `src/hooks/work-orders/useDeleteWorkOrder.ts`)
- Delete order → Order API service: deletes online (evidence: `src/hooks/work-orders/useDeleteWorkOrder.ts`)
- Fetch order → Order API service: fetches order (evidence: `src/hooks/work-orders/useGetWorkOrder.ts`)
- Order state → Order repository: reads local data (evidence: `src/store/workOrderStore.ts`)
- Order state → Order API service: fetches remote data (evidence: `src/store/workOrderStore.ts`)
- Order repository → Realm database: reads and writes (evidence: `src/database/repositories/workOrdersRepository.ts`)
- Sync metadata → Realm database: reads and writes (evidence: `src/database/repositories/syncMetadataRepository.ts`)
- Realm database → Realm schemas: opens with schema (evidence: `src/database/index.ts`)
- Realm database → Metadata schema: opens with schema (evidence: `src/database/index.ts`)
- Reconnect trigger → Sync coordinator: triggers sync (evidence: `src/hooks/work-orders/useSyncOnReconnect.ts`)
- Sync coordinator → Push local changes: pushes changes (evidence: `src/services/sync/syncWorkOrders.ts`)
- Sync coordinator → Remote sync service: fetches remote changes (evidence: `src/services/sync/syncWorkOrders.ts`)
- Sync coordinator → Order repository: applies remote data (evidence: `src/services/sync/syncWorkOrders.ts`)
- Sync coordinator → Sync metadata: tracks last sync (evidence: `src/services/sync/syncWorkOrders.ts`)
- Push local changes → Order API service: sends local changes (evidence: `src/services/sync/pushLocalChanges.ts`)
- Remote sync service → Work-orders API: syncs orders (evidence: `README.md`)
- Order API service → Work-orders API: sends and fetches orders (evidence: `src/services/work-orders/workOrdersService.ts`)
- Order types → Order repository: types records (evidence: `src/database/repositories/workOrdersRepository.ts`)
