Platform Admin · App Guide10 screens · Super admin console
PLT-SCR-01

Dashboard

Platform-wide KPI overview. The first screen a platform admin sees after login. Shows tenant health, plan distribution, and recently joined businesses at a glance.

platform.engineeringservices.app/dashboard

⚡ Platform Admin

Engineering Services — v1.0
🏚
12
Total Tenants
10
Active
2
Suspended
📋
3
Active Plans
📊
147
Projects (Platform)
🔔
4
Unread Alerts
SUBSCRIPTION BREAKDOWN
Starter
PKR 5,000 / month
5 Projects3 Locations10 EmployeesNo Client Portal
Professional
PKR 15,000 / month
25 Projects5 Locations50 Employees✓ Client Portal
Enterprise
PKR 35,000 / month
Unlimited ProjectsUnlimited Staff✓ Client Portal
RECENTLY JOINED
TenantPlanStatusJoined
Al-Noor EngineeringProfessionalactive15 Mar 2024
RapidBuild Co.Starteractive10 Mar 2024
Metro StructuresEnterpriseactive28 Feb 2024
PLT-SCR-02

Tenant List

Full list of all business tenants. Filterable by plan and status. Each row has quick-action buttons for edit and suspend.

platform.engineeringservices.app/tenants

Tenants

#Business NameOwnerPlanStatusActions
3
Al-Noor Engineering
bilal@alnoor.pk
Mr. Bilal Ahmed Professional active
4
RapidBuild Co.
sana@rapidbuild.pk
Ms. Sana Khan Starter active
5
Metro Structures
ahmed@metro.pk
Ahmed Malik Enterprise active
6
ZenithCivil
omar@zenith.pk
Omar Raza Starter suspended
API → GET /api/platform/tenants params: subscription_plan_id, is_active, subscription_status | PLT-004 Tenant management
PLT-SCR-03

Invite Tenant

Create a new business tenant. On submit, the API auto-generates a subdomain slug and optionally creates an admin user with a temporary password returned in the response.

platform.engineeringservices.app/tenants/invite

Invite New Tenant

✕ Cancel
🔒 Admin Credentials — Share with Tenant Securely
Usernamealnoorengineering_admin
Emailbilal@alnoor.pk
Temp PasswordKx7@mPqZ3nWr
NoteMust change on first login
PLT-SCR-04

Tenant Detail & Edit

View and edit a single tenant. Shows all fields, plan assignment, and subscription status. Saving a change with is_active=false triggers a TENANT_SUSPENDED audit event.

platform.engineeringservices.app/tenants/3/edit

Al-Noor Engineering

← Back
Details
Audit History
SUBSCRIPTION STATUS
active suspended past_due cancelled
AUTO-GENERATED FIELDS
Subdomain Slugal-noor-engineering
ID3
Created15 Mar 2024
PLT-SCR-05

Subscription Plans List

All subscription plans including inactive ones. Shows per-plan tenant counts. Plans with -1 limits are displayed as "Unlimited". Inactive plans show a dimmed row.

platform.engineeringservices.app/plans

Subscription Plans

Starter
PKR 5,000 / month
Active
5 Projects3 Locations10 EmployeesNo Client Portal
Professional
PKR 15,000 / month
Active
25 Projects5 Locations50 Employees✓ Client Portal
Enterprise
PKR 35,000 / month
Active
Unlimited ProjectsUnlimited LocationsUnlimited Staff✓ Client Portal
Legacy Basic
PKR 2,500 / month
Inactive
3 Projects1 Location5 Employees
PLT-SCR-06

Plan Create / Edit Form

Create a new plan or edit an existing one. The slug is auto-generated but editable. Use -1 for unlimited values. Has Client Portal is shown only to Professional and Enterprise plans.

platform.engineeringservices.app/plans/new

New Subscription Plan

← Cancel
ℹ Setting -1 for any limit field means Unlimited. Display as "Unlimited" throughout the UI — never show "-1" to end users.
PLT-SCR-07

Audit Log

Immutable audit trail of all platform operations. Filterable by category and read status. Unread events show an amber dot. Search spans title, body, event_code, and numeric ID.

platform.engineeringservices.app/audit-log

Audit Log

TENANT_CREATED 15 Mar 2024 10:23
Tenant Created
Al-Noor Engineering onboarded on Professional plan
Actor: Platform Admin (admin@platform.com) · ID #47
PLAN_UPDATED 14 Mar 2024 15:10
Plan Updated
Professional plan max_projects updated: 20 → 25
Actor: Platform Admin (admin@platform.com) · ID #46
TENANT_SUSPENDED 10 Mar 2024 09:45
Tenant Suspended
ZenithCivil suspended by platform admin
Actor: Platform Admin · ID #43
PLT-SCR-08

Audit Event Detail

Full detail view of a single audit event. Shows actor info, event code, category, body text, and timestamp. Marking as read sets is_read=true on the record.

platform.engineeringservices.app/audit-log/47

Audit Event #47

← Log
Event Code
TENANT_CREATED
Title
Tenant Created
Body
Al-Noor Engineering onboarded on Professional plan
Category
tenant
Actor
Platform Admin <admin@platform.com>
Timestamp
2024-03-15T10:23:44+05:00
Read Status
Unread
PLT-SCR-09

Suspend Confirmation Dialog

Shown before suspending a tenant or before deleting a plan that may have tenants assigned. Soft-deactivation for tenants, deactivation-not-deletion for plans with active users.

platform.engineeringservices.app/tenants/3/suspend

Confirm Suspension

⚠ This will suspend Al-Noor Engineering.

Their admin and all users will immediately lose access to the portal.
No data is deleted — all projects, documents, employees, and records are preserved.

The tenant can be reactivated at any time from the tenant edit screen.
TenantAl-Noor Engineering
Current PlanProfessional
Status changeactivesuspended
Audit eventTENANT_SUSPENDED logged
API → DELETE /api/platform/tenants/{id} soft-suspends, does not hard-delete | PLT-004 Tenant lifecycle
PLT-SCR-10

Platform Overview

Read-only system health snapshot. Shows all portals active on the platform, the user type hierarchy, and quick navigation to all admin sections. The "God's-eye view" of the whole system.

platform.engineeringservices.app/overview

⚡ Platform Overview

v1.0
ACTIVE PORTALS (per tenant)
PortalColorUser TypeGuard
Platform Admin Amberplatform_adminrejectUnlessSuperAdmin
Admin Portal SkyadminrejectUnlessPortalUserType
Employee Portal Greenemployeebusiness_id scoped
Client Portal Violetclientclient_user_id scoped
Contractor Portal Orangecontractorsubcontractor resolver
QUICK NAVIGATION
🏚 Tenants
Manage all businesses
📋 Plans
Subscription tiers
📝 Audit Log
Platform events
📊 Dashboard
KPI overview
SYSTEM INFO
API Versionv1
Auth GuardrejectUnlessSuperAdmin()
Base URL/api/platform/
Tenant isolationNone (platform-wide view)