Skip to content

Platforms

Route

/platform (the legacy alias /page_main_iqv_os now only redirects to /platform)

Page Purpose

List every one of the organization's platform modules (internal tools) on a single screen and let the user reach them in one click.

Fields on the Page

  • A header card: "Platform" title, a live clock showing date only, a "Platform ara" (Search platforms) search box.
  • A responsive grid of module cards — each card shows the module name.
  • An empty state during loading, an alert + retry on error, and separate empty states for an empty list vs. an empty search result.

User Actions

  1. Type in the search box to filter by module name/URL.
  2. Click a module card to go to its address — an in-app (relative) address navigates within the SPA; an external one opens in a new tab (guarded against double-opening).

There is NO module creation/editing/deletion on this page — those actions live only on the Settings page.

Data Used

  • The platform module list (id, name, url, order number, created date) — auto-refreshed every 30 seconds, cached for instant display.
  • Ordering is computed on the backend: the saved platform ordering (queue) if one exists, otherwise created_at order. The page no longer issues a separate ordering request and no longer recomputes the order.

Access and Visibility

Reachable by any logged-in user; there is no role-based restriction (see Target Users). It is the only page shown in the sidebar for users with the user role.

Components Used

  • dashboard/src/components/platform/index.tsx — the page component, and the ModuleCard component defined here, also reused on the Settings page.
  • dashboard/src/components/hooks/useClock.tsx — date display.
  • dashboard/src/components/hooks/usePolling.tsx — the 30-second auto-refresh.

API Communication

Action Method Endpoint Purpose
Fetch module list GET /platform/modules (public /api/v1/platform/modules) Pre-ordered module list — a single request

The page now uses a single endpoint. The POST /platform-queue-list call has been removed from this page (the endpoint itself and the Settings > Sort screen stay in place); the legacy GET /iqv_platform_modulleri endpoint keeps serving the Notes/Reminder/Settings pages.

For details, see API Documentation › Platform Modules.

State Management

  • Module list: a 60-second stale-while-revalidate in-memory cache plus a localStorage persistent cache in the service layer (platformService.tsx → getOrderedModules), giving instant display on page re-entry. Saving a new order on Settings > Sort invalidates this cache.
  • Search text and selection state: local React state.
  • Session/role info: the Redux admin slice — the page no longer reads it; scope (company/organization) is derived from the JWT on the server.