Project Listings Documentation
This document describes the full structure and behaviour of the Project Listings page in AISTEAM. It is aligned with the live database and the current backend API. Use this page as a reference when working on the listing, filtering, loading or rendering of project records.
Contents
Overview
The Project Listings page displays all projects associated with the active tenant. It loads a curated list from the backend that includes each project's name, CMS type, CMS icon and creation timestamp. Clicking a project sends the user to the full Project Dashboard for that project.
Page layout
ProjectListingsPage PageWrapper Header Page title ProjectList For each project Name CMS text CMS icon (from public folder) Created timestamp Link to /projects/[id]
Data flow
- User opens the Project Listings page
- The frontend sends a GET request to /api/projects
- The backend loads all projects filtered by tenant_id
- The backend enriches each project with cms_icon
- The frontend renders each project row inside the page
Database structure
- projects
Core table for all projects in AISTEAM. Confirmed active fields:- id
- tenant_id
- name
- cms
- created_at
These fields are confirmed through live API queries and Supabase errors. Fields such as domain, cms_url, status and custom_data will arrive in a later migration.
- tenants
Provides tenant ownership. All project queries filter by tenant_id.
API endpoint
GET /api/projects
Returns JSON shaped like:
{
"projects": [
{
"id": "uuid",
"name": "Project name",
"tenant_id": "uuid",
"cms": "WordPress",
"created_at": "timestamp",
"cms_icon": "/icon-wordpress.png"
}
]
}
Backend logic:
1. Query Supabase for projects with matching tenant_id
2. Map CMS value to correct icon path in public
3. Return enriched project list to the frontend
Future enhancements
- Add domain field to projects table and UI
- Add cms_url field
- Add project status values such as active or archived
- Add filters and sorting
- Add project logo or thumbnail support
- Add project search bar
- Add tenant switching toolbar