User CRUD
Feature Detail
Description
This feature provides full lifecycle management for user accounts within the Meander Admin Web Portal. Administrators can create new users by sending invitations, view and search existing user profiles, update user details such as contact information and organizational affiliation, and deactivate accounts when users leave. The feature supports multi-tenant isolation so that Org Admins only see users within their own organization, while Global Admins can operate across the system. All user records are tied to an organization and one or more local associations.
User Flow
Analysis
User management is the foundational administrative capability that unlocks every other function in the platform. Without the ability to create, view, update, and deactivate users, no organization can onboard peer mentors or coordinators, assign roles, or maintain data integrity. From a compliance and security perspective, the ability to deactivate accounts promptly is critical for GDPR adherence and access control. Org Admins spend significant time managing volunteer turnover, so a clean, fast CRUD interface directly reduces administrative burden and enables organizations to scale their peer mentor programs efficiently.
Implemented as server-side rendered Next.js pages under the /admin/users route, consuming the REST API at /api/v1/users. The user list page uses server components with pagination and search/filter controls. User invitation is handled via a POST to /api/v1/users/invite, which generates a time-limited token and sends an email. Deactivation sets an active flag rather than hard-deleting records to preserve audit history. Multi-tenant scoping is enforced at the API layer using the authenticated user's organization context from the JWT. The User Repository data component abstracts all database queries against the users, organizations, and user_local_associations tables in PostgreSQL.
Components (116)
Shared Components
These components are reused across multiple features
User Interface (12)
Service Layer (34)
Data Layer (22)
Infrastructure (38)
User Stories
No user stories have been generated for this feature yet.