Built a robust set of API endpoints for the admin dashboard to monitor platform health and manage users.
GET /admin/stats: Provides platform-wide statistics (users, groups, transactions, volume).GET /admin/users: Lists all members/users in the system.GET /admin/users/:id: Retrieves detailed information for a specific user.PATCH /admin/users/:id: Allows updating user details.DELETE /admin/users/:id: Handles user removal.GET /admin/audit-logs: Retrieves a history of administrative actions.
- Implemented
adminAuthMiddlewareto protect all/admin/*routes. - Requires
x-admin-secretheader for access. - Provides a mock
adminIdfor audit logging.
- Total users count.
- Total groups count.
- Total transactions count and total volume.
- Mocked system health and last backup timestamp.
- Full CRUD-like capabilities for users (List, Read, Update, Delete).
- Logic encapsulated in
AdminServicefor maintainability.
- Automatically logs
UPDATE_USERandDELETE_USERactions. - Tracks
adminId,action,targetId,targetType,timestamp, andmetadata. - Logs are stored in memory (following the existing mock data pattern).
- Created
src/tests/admin.test.ts. - Verified platform stats retrieval.
- Verified user lookup and updates.
- Verified audit log generation for administrative actions.
- Verified user deletion.
backend/src/models.ts: AddedAuditLoginterface.backend/src/mock_data.ts: Created to share mock data between services and tests.backend/src/admin_service.ts: Core logic for admin operations.backend/src/auth_middleware.ts: Security layer for admin routes.backend/src/index.ts: Integrated admin routes and middleware.backend/src/tests/admin.test.ts: Test suite for admin features.
cd backend
npm install
npx tsx src/tests/admin.test.ts