Skip to content

[HCW-home] Admin Panel & Configuration Management Enhancements #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
6 tasks
gorg16 opened this issue Apr 1, 2025 · 6 comments
Open
6 tasks

[HCW-home] Admin Panel & Configuration Management Enhancements #48

gorg16 opened this issue Apr 1, 2025 · 6 comments
Labels
C4GT Community Tasks for C4GT

Comments

@gorg16
Copy link
Collaborator

gorg16 commented Apr 1, 2025

Ticket Contents

This task focuses on enhancing the admin panel and configuration management capabilities in the HCW-home platform. It includes building essential features such as sidebar navigation in the practitioner dashboard, webhook handling for message delivery tracking, messaging support verification, help overlays for user onboarding, and export functionality for consultations.

Additionally, it includes full admin-level CRUD operations for managing users. Admins should be able to create, update, delete, and list users, assign them to one or more organisations, and optionally link them to groups. This user management must also support setting user roles, status, language preferences, and specialties.

Goals

  • Implement sidebar navigation for the practitioner dashboard with links to key features and modules.
  • Add webhook endpoints to receive and process delivery status updates from external messaging providers (e.g., WhatsApp, SMS).
  • Create an endpoint to check if a phone number supports SMS and/or WhatsApp messaging, to validate communication preferences.
  • Integrate a persistent help button in the application header that launches an interactive guided tour of the main pages.
  • Enable export functionality in the admin panel to allow downloading consultation data as CSV files.
  • Implement full Admin CRUD operations for users, including:
    • Creating, updating, deleting, and listing users
    • Assigning users to one or more organisations
    • Optional assignment to groups
    • Managing roles, account status, language preferences, and specialties

Expected Outcome

  • Admin users can create, update, delete, and manage users through a clean Angular Material interface.
  • Users can be assigned to one or more organisations and optionally to specific groups.
  • Roles, statuses, languages, and specialties are configurable and stored properly.
  • Practitioners have access to a functional sidebar for easy navigation within the dashboard.
  • The backend successfully receives and processes delivery status updates via webhook endpoints from SMS/WhatsApp providers.
  • The system can validate messaging support for any given phone number through a dedicated endpoint.
  • A help button is visible in the top navigation bar that launches a guided tour of the app for new users.
  • Admin users can export consultation data as CSV files directly from the admin panel.
  • All features are secure, tested, and integrated with role-based access controls.

Acceptance Criteria

No response

Implementation Details

  • Admin CRUD for Users:
    Develop backend endpoints to support full CRUD operations for user management, including assigning users to one or more organisations and optionally to groups. Fields should include: name, email, role, status (active/inactive), language preferences, and specialties.
    In the Angular admin panel, create a user management interface using Angular Material components — include tables, form dialogs, and multi-select dropdowns for organisation/group assignments.

  • Sidebar Navigation:
    Implement a collapsible sidebar in the Angular frontend (practitioner dashboard) using Angular Material’s mat-sidenav. The sidebar should link to main sections like Dashboard, Profile, Consultations, and Settings.

  • Message Delivery Webhooks:
    Build backend endpoints to receive webhook callbacks from SMS and WhatsApp providers (e.g., Twilio). Update message delivery status in the database accordingly.

  • Messaging Support Lookup:
    Implement an API endpoint that accepts a phone number and returns its support for SMS and/or WhatsApp. Use provider APIs (e.g., Twilio) for validation.

  • Help Button with Guided Tour:
    Add a help icon/button to the top navigation bar in both admin and practitioner frontends. When clicked, it should trigger an interactive guided tour using Angular libraries like ngx-tour or ngx-guided-tour.

  • Consultation Export (CSV):
    Implement a backend endpoint that returns consultation data in CSV format, filtered by date or organisation if needed. In the admin Angular frontend, create a button that triggers CSV download using FileSaver or Blob.

  • Security & Access Control:
    All admin features should be protected by role-based access guards on both frontend and backend.

Referenced Issues

#8, #15, #17,
#18, #31, #36

Mockups/Wireframes

No response

Product Name

HCW

Organisation Name

C4GT

Domain

No response

Tech Skills Needed

Angular

Organizational Mentor

Angel Mentor

No response

Complexity

High

Category

Frontend

@olivierb2 olivierb2 added the C4GT Community Tasks for C4GT label Apr 2, 2025
@btwshivam
Copy link

Hi @gorg16 @olivierb2,
I’m excited about the Admin Panel & Configuration Management Enhancements project in HCW-home. With my experience in Angular and backend development, I’d love to contribute to building out the user management features, webhooks, and guided tours.
Could you please share any setup guidelines or where I should begin?

@btwshivam
Copy link

Is there any Slack or any communication channel?

@gorg16
Copy link
Collaborator Author

gorg16 commented Apr 7, 2025

Hi @btwshivam,

Great to hear about your enthusiasm for the project! You’re welcome to join our communication channel at:

https://matrix.to/#/#hcw-home:iabsis.com

@OVER-CODER
Copy link

Hi! @gorg16 @@olivierb2,
I'm Aryan Pandit, I’ve worked with Angular (Material) and FastAPI for backend systems. I also have experience implementing webhook endpoints for SMS/WhatsApp. This issue aligns well with my skillset, and I’ve started exploring the codebase.
Looking forward to contributing!

@Akhlaquea01
Copy link

Hi i want to work on this project

@dhruvdornal
Copy link

dhruvdornal commented Apr 14, 2025

Hi! I'd love to contribute to this feature. I have experience working with CRUD operations, APIs, and both backend and frontend development (including Angular). I'm particularly interested in helping with the admin panel enhancements and user management features. Let me know how I can get started!
Lemme know if there's a discord or slack channel for this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C4GT Community Tasks for C4GT
Projects
None yet
Development

No branches or pull requests

6 participants