# Oudelaa SuperAdmin Dashboard Next.js dashboard for SuperAdmin operations only. ## Run ```bash npm install npm run dev ``` ## Environment Set the backend base URL in `.env.local`: ```env NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:4001/api/v1 API_BASE_URL=http://127.0.0.1:4001/api/v1 ``` For LAN/mobile testing, use the machine IP instead of `127.0.0.1`, for example: ```env NEXT_PUBLIC_API_BASE_URL=http://192.168.1.12:4001/api/v1 API_BASE_URL=http://192.168.1.12:4001/api/v1 ``` The dashboard uses the internal proxy route at `app/api/proxy/[...path]/route.ts`, so the browser never calls the Nest API directly. ## Authentication Contract - Login: `POST /auth/superadmin/login` - Refresh: `POST /auth/superadmin/refresh` - Logout: `POST /auth/superadmin/logout` - Sessions: `GET /auth/superadmin/sessions` - Revoke session: `POST /auth/superadmin/sessions/:sessionId/revoke` This dashboard must not depend on user-token routes unless the backend exposes a dedicated `admin` or `superadmin` variant for the same data. ## Implemented Pages - `/dashboard`: executive overview - `/users`: SuperAdmin user management with search, pagination, and profile overview - `/analytics`: platform metrics snapshot - `/content`: post and comment moderation - `/marketplace`: listing and repair-shop moderation - `/notifications`: platform notifications center - `/messages`: interaction follow-up view - `/security`: session management and audit log - `/settings`: live operational settings, connection info, and session controls - `/orders`: marketplace operations queue ## Key Frontend Contracts - Users: - `GET /users/admin` - `GET /users/admin/admins` - `GET /users/admin/discover` - `GET /users/admin/:id/profile-overview` - Content moderation: - `GET /posts/admin/moderation` - `DELETE /posts/admin/:postId` - `GET /comments/admin` - `DELETE /comments/admin/:commentId` - Marketplace moderation: - `GET /marketplace/superadmin/listings` - `PATCH /marketplace/superadmin/listings/:id/status` - `DELETE /marketplace/superadmin/listings/:id` - `GET /marketplace/superadmin/repair-shops` - `PATCH /marketplace/superadmin/repair-shops/:id/status` - `DELETE /marketplace/superadmin/repair-shops/:id` - Platform monitoring: - `GET /notifications/superadmin` - `GET /audit/superadmin/logs` - `GET /superadmin/overview` - `GET /superadmin/charts` - `GET /superadmin/recent-activity` - `GET /superadmin/reports` - `GET /superadmin/settings` - `PATCH /superadmin/settings` - `PATCH /superadmin/posts/:id/status` - `PATCH /superadmin/comments/:id/status` - `PATCH /superadmin/users/:id/status` ## Notes - The dashboard stores SuperAdmin session tokens in secure `httpOnly` cookies through the internal proxy route. - `AuthGuard` attempts refresh when the access token is expired. - Marketplace and content pages assume the backend pagination contract returns a `pagination` object.