Files
syndarix/frontend/src/app/[locale]/(authenticated)/projects/[id]/page.tsx
Felipe Cardoso 551dbb7293 feat(frontend): implement main dashboard page (#48)
Implement the main dashboard / projects list page for Syndarix as the landing
page after login. The implementation includes:

Dashboard Components:
- QuickStats: Overview cards showing active projects, agents, issues, approvals
- ProjectsSection: Grid/list view with filtering and sorting controls
- ProjectCardGrid: Rich project cards for grid view
- ProjectRowList: Compact rows for list view
- ActivityFeed: Real-time activity sidebar with connection status
- PerformanceCard: Performance metrics display
- EmptyState: Call-to-action for new users
- ProjectStatusBadge: Status indicator with icons
- ComplexityIndicator: Visual complexity dots
- ProgressBar: Accessible progress bar component

Features:
- Projects grid/list view with view mode toggle
- Filter by status (all, active, paused, completed, archived)
- Sort by recent, name, progress, or issues
- Quick stats overview with counts
- Real-time activity feed sidebar with live/reconnecting status
- Performance metrics card
- Create project button linking to wizard
- Responsive layout for mobile/desktop
- Loading skeleton states
- Empty state for new users

API Integration:
- useProjects hook for fetching projects (mock data until backend ready)
- useDashboardStats hook for statistics
- TanStack Query for caching and data fetching

Testing:
- 37 unit tests covering all dashboard components
- E2E test suite for dashboard functionality
- Accessibility tests (keyboard nav, aria attributes, heading hierarchy)

Technical:
- TypeScript strict mode compliance
- ESLint passing
- WCAG AA accessibility compliance
- Mobile-first responsive design
- Dark mode support via semantic tokens
- Follows design system guidelines
2025-12-30 23:46:50 +01:00

30 lines
739 B
TypeScript

/**
* Project Dashboard Page
*
* Main dashboard for viewing project status, agents, sprints, and activity.
* Provides real-time updates via SSE and quick actions for project management.
*
* @see Issue #40
*/
import { Metadata } from 'next';
import { ProjectDashboard } from '@/components/projects/ProjectDashboard';
export const metadata: Metadata = {
title: 'Project Dashboard',
description: 'View project status, agents, sprints, and activity',
};
interface ProjectDashboardPageProps {
params: Promise<{
id: string;
locale: string;
}>;
}
export default async function ProjectDashboardPage({ params }: ProjectDashboardPageProps) {
const { id } = await params;
return <ProjectDashboard projectId={id} />;
}