Project Overview

evergreenLast update on Sep 1, 2026
Download .md

Project Overview

AIS is an enterprise asset management system for receiving, tagging, assigning, maintaining, and auditing physical assets.

Product Scope

  • Receive assets against GRNs, imports, or ad-hoc deliveries.
  • Bind physical tags: vendor, store-issued, temporary, or app-generated.
  • Maintain an append-only event history for asset actions.
  • Track custody, department, location, compliance, documents, and financial profile.
  • Support backend, web dashboard, and mobile workflows from one shared API contract.

First Principles

  • Contract-first: OpenAPI is the cross-platform source of truth.
  • Thin vertical slices: contract -> backend -> generated clients -> web/mobile -> tests.
  • Append-only facts: asset history is event-based; corrections are new events.
  • Idempotent sync: mobile and integrations can retry safely.
  • Explicit current vs target state: do not confuse the Flutter POC with the final system.

Current Implementation

AreaState
Flutter mobile POCImplemented under reference/mobile_app_demo/
BackendPlanned under apps/backend/
Web dashboardPlanned under apps/web/
Production mobile appPlanned under apps/mobile/
Shared contractsPlanned under packages/contracts/
InfrastructurePlanned under infra/

Target System

flowchart LR
    Web["Next.js web dashboard"] --> API["Spring Boot API"]
    Mobile["Flutter mobile app"] --> API
    API --> DB[(PostgreSQL)]
    API --> Objects["Object storage"]
    API --> IdP["Identity provider"]
    Contract["OpenAPI contract"] --> API
    Contract --> Web
    Contract --> Mobile

Non-Goals For The POC

  • Full authentication and authorization.
  • Production signing and release pipeline.
  • Durable mobile read models beyond the local event queue.
  • Complete backend and web dashboard implementation.
  • Manual maintenance of generated API client types.