Web Repository - Feature Inventory

Overview

This document catalogs all features implemented in the Psyter Web Application, organized by user role and functional area. Each feature includes dependencies, integration points, and technical implementation details.


Public Features (Unauthenticated Users)

1. Home Page & Public Website

Feature: Public landing page with service information

Controllers: WebController

Views:
- ~/Views/Web/English/Home.cshtml
- ~/Views/Web/Arabic/Home.cshtml

Key Functionality:
- Service overview and features
- Care provider highlights
- Testimonials
- Blog/article snippets
- Download app section (iOS, Android, Huawei)
- Language switcher (English/Arabic)
- Mobile-responsive design

Dependencies:
- SEO metadata from database
- Static content/images
- Google Analytics integration

Integration Points:
- Google Analytics tracking
- Social media links
- Mobile app store links


2. Care Provider Listings

Feature: Browse and search care providers/therapists

Controllers: WebController.PhysicianList()

Views:
- ~/Views/Web/English/PhysicianList.cshtml
- ~/Views/Web/Arabic/PhysicianList.cshtml

Key Functionality:
- List all active care providers
- Filter by specialty, language, gender, availability
- View provider profiles
- See ratings and reviews
- Check availability
- Book appointments (requires login)

API Endpoints:
- GET /ServiceProvider/GetServiceProviders - Provider listings
- GET /Common/GetSpecialities - Specialty catalog
- GET /Common/GetLanguages - Language catalog

Dependencies:
- PsyterAPI for provider data
- Filtering/sorting logic
- Pagination support

Search Filters:
- Specialty
- Language
- Gender
- Availability
- Rating
- Best match algorithm


3. Care Provider Profile

Feature: View detailed care provider profile

Controllers: WebController.CareProviderDetail()

Views:
- ~/Views/Web/English/CareProviderDetail.cshtml
- ~/Views/Web/Arabic/CareProviderDetail.cshtml

Key Functionality:
- Personal information
- Professional experience
- Education history
- Specialties and services
- Availability calendar
- Ratings and reviews
- Session pricing
- Book appointment button

API Endpoints:
- GET /ServiceProvider/GetServiceProviderProfile/{id}
- GET /ServiceProvider/GetAvailability/{id}
- GET /ServiceProvider/GetRatings/{id}


4. User Registration

Feature: New user account creation (Patients & Care Providers)

Controllers: UserManagerController

Views:
- ~/Views/Web/English/Register.cshtml
- ~/Views/Web/Arabic/Register.cshtml

Registration Types:
1. Patient Registration:
- Personal information
- Contact details
- Password creation
- Email verification

  1. Care Provider Registration:
    - Personal information
    - Professional details
    - Credentials upload
    - Educational background
    - Work experience
    - Specialties selection
    - National ID verification
    - Terms & conditions acceptance

API Endpoints:
- POST /User/RegUser - Register new user
- GET /User/Verification/{code} - Verify email

Dependencies:
- Email service for verification
- File upload for credentials
- Catalog data (specialties, countries, etc.)

Validation:
- Email format and uniqueness
- Password strength
- Required fields
- File format and size limits
- National ID format (for Saudi Arabia)


5. User Authentication

Feature: Login and logout functionality

Controllers: UserManagerController

Views:
- ~/Views/Web/English/Login.cshtml
- ~/Views/Web/Arabic/Login.cshtml

Login Methods:
1. Email/Password
2. Mobile number (with country code)
3. Social login (Google, Apple) - if configured

API Endpoints:
- POST /authenticate - User login
- GET /User/GetUserDetails - User profile after login

Session Management:
- User info stored in session
- API tokens cached
- Role-based redirection after login

Features:
- Remember me functionality
- Forgot password link
- Multi-language support


6. Password Recovery

Feature: Forgot password and reset password

Controllers: UserManagerController

Views:
- ~/Views/Web/English/ForgotPassword.cshtml
- ~/Views/Web/English/ResetPassword.cshtml
- Arabic equivalents

Workflow:
1. User enters email
2. System sends reset link
3. User clicks link
4. User enters new password
5. Password updated

API Endpoints:
- POST /User/ForgotPassword - Request password reset
- POST /User/ResetPassword - Update password


7. Psychological Screening/Assessment

Feature: Take psychological assessment questionnaires

Controllers: ScreeningController, WebController

Views:
- ~/Views/Patient/English/Screening.cshtml
- ~/Views/Patient/Arabic/Screening.cshtml

Assessment Types:
- Depression screening
- Anxiety screening
- Stress assessment
- PTSD screening
- OCD screening
- Combined assessments (DASS - Depression, Anxiety, Stress Scale)

Key Functionality:
- Multi-step questionnaire
- Progress tracking
- Score calculation
- Results interpretation
- Recommendations based on scores
- Option to save results (requires login)
- Share results with care provider

API Endpoints:
- GET /Screening/GetQuestions/{type} - Get questions
- POST /Screening/SaveAnswers - Submit answers
- GET /Screening/GetResults/{id} - Get results


8. Content Pages

Feature: Informational and legal pages

Controllers: WebController, ContentManagerController

Pages:
- About Us
- FAQ (Frequently Asked Questions)
- Contact Us
- Privacy Policy
- Terms & Conditions
- Blog/Articles
- Disorders Information (Anxiety, Depression, PTSD, etc.)
- How It Works

Views: Separate English and Arabic views for each page

Features:
- Rich text content
- Images and media
- SEO optimization
- Mobile-responsive

API Endpoints:
- GET /Content/GetPage/{pageName} - Dynamic content
- GET /Content/GetFAQs - FAQ list
- GET /Content/GetBlogs - Blog posts


9. Contact Form

Feature: Contact form for inquiries

Controllers: WebController.Contact()

Fields:
- Name
- Email
- Phone
- Subject
- Message

API Endpoints:
- POST /Common/SendContactMessage

Features:
- Form validation
- Email notification to admin
- Confirmation message to user


Patient/Client Features (Authenticated)

10. Patient Dashboard

Feature: Patient home screen after login

Controllers: ClientController.Dashboard()

Views:
- ~/Views/Patient/English/Dashboard.cshtml
- ~/Views/Patient/Arabic/Dashboard.cshtml

Dashboard Sections:
- Upcoming appointments
- Recent messages
- Assigned homework
- Diary entries
- Quick actions (book appointment, screening, etc.)
- Notifications


11. Profile Management

Feature: View and edit patient profile

Controllers: ClientController.Profile()

Profile Sections:
1. Personal Information:
- Name, date of birth, gender
- Profile photo
- Contact information
- Address

  1. Account Settings:
    - Email
    - Password
    - Language preference
    - Timezone
    - Notification preferences

  2. Medical History (if applicable):
    - Current medications
    - Allergies
    - Previous treatments

API Endpoints:
- GET /User/GetProfile/{userId}
- PUT /User/UpdateProfile
- POST /User/UploadProfilePhoto


12. Appointment Booking

Feature: Book appointments with care providers

Controllers: ClientController.BookAppointment()

Booking Flow:
1. Select care provider (or let system recommend)
2. View provider’s available slots
3. Select preferred date/time
4. Choose session type (video/audio)
5. Apply discount code (optional)
6. Confirm booking
7. Payment processing
8. Receive confirmation

Session Types:
- Initial consultation (longer session)
- Follow-up session
- Group session

Payment Options:
- Credit/Debit card (Visa, Mastercard, Mada)
- Apple Pay (if available)
- Package/subscription credits

API Endpoints:
- GET /Availability/GetProviderAvailability/{providerId}
- POST /Booking/CreateBooking
- POST /Payment/ProcessPayment
- GET /Booking/GetBookingDetails/{bookingId}

Features:
- Calendar view of availability
- Time zone conversion
- Automatic reminders (email/SMS)
- Waiting list option if no slots available


13. Appointment Management

Feature: View and manage booked appointments

Controllers: ClientController.MyAppointments()

Key Functionality:
- View upcoming appointments
- View past appointments
- Join video/audio session
- Cancel appointment
- Reschedule appointment
- View appointment details
- Download appointment summary

Appointment Status:
- Scheduled
- Completed
- Cancelled
- No-show
- In-progress

API Endpoints:
- GET /Booking/GetClientBookings/{clientId}
- PUT /Booking/CancelBooking/{bookingId}
- PUT /Booking/RescheduleBooking


14. Video/Audio Sessions

Feature: Attend virtual therapy sessions

Controllers: ClientController.JoinSession()

Views:
- ~/Views/Patient/English/VideoSession.cshtml
- Meeting interface views

Session Features:
- Video conferencing (WebRTC-based)
- Audio-only option
- Chat messaging during session
- Screen sharing (for care provider)
- Session recording (with consent)
- Connection quality indicator
- Technical support button

Meeting Controls:
- Microphone mute/unmute
- Camera on/off
- Switch camera (mobile)
- Volume control
- End call
- Report technical issues

Pre-session Checks:
- Camera/microphone test
- Connection quality test
- System compatibility check

Technical Stack:
- WebRTC for peer-to-peer communication
- Signaling server for session initiation
- TURN/STUN servers for NAT traversal

API Endpoints:
- GET /Session/GetSessionToken/{bookingId}
- POST /Session/StartSession/{bookingId}
- POST /Session/EndSession/{bookingId}
- POST /Session/ReportIssue


15. Messaging

Feature: Secure messaging with care providers

Controllers: ClientController.Messages()

Views:
- ~/Views/Patient/English/Messages.cshtml
- ~/Views/Patient/Arabic/Messages.cshtml

Key Functionality:
- View message threads
- Send text messages
- Attach files/images
- Read receipts
- Message history
- Search messages
- Unread message notifications

API Endpoints:
- GET /Message/GetThreads/{userId}
- GET /Message/GetMessages/{threadId}
- POST /Message/SendMessage
- POST /Message/UploadAttachment

Features:
- Real-time messaging (WebSocket or polling)
- File attachments (images, PDFs)
- Message encryption for security
- Offline message storage


16. Prescriptions

Feature: View prescriptions from care providers

Controllers: ClientController.Prescriptions()

Views:
- ~/Views/Patient/English/Prescriptions.cshtml

Key Functionality:
- View prescription list
- View prescription details
- Download prescription (PDF)
- Print prescription
- Prescription history

Prescription Information:
- Medication name and dosage
- Duration
- Instructions
- Prescriber information
- Date prescribed
- Pharmacy notes

API Endpoints:
- GET /Prescription/GetClientPrescriptions/{clientId}
- GET /Prescription/GetPrescriptionDetails/{prescriptionId}
- GET /Prescription/DownloadPDF/{prescriptionId}


17. Diary/Journal

Feature: Personal journal for mental health tracking

Controllers: ClientController.Diary()

Views:
- ~/Views/Patient/English/Diary.cshtml

Key Functionality:
- Create diary entries
- Edit entries
- Delete entries
- View entry history
- Mood tracking
- Activity logging
- Share entries with care provider (optional)

Entry Fields:
- Date and time
- Mood rating (1-10 scale)
- Activities performed
- Thoughts and feelings
- Sleep quality
- Medication adherence
- Notes

API Endpoints:
- GET /Diary/GetEntries/{clientId}
- POST /Diary/CreateEntry
- PUT /Diary/UpdateEntry/{entryId}
- DELETE /Diary/DeleteEntry/{entryId}

Features:
- Calendar view
- Mood graphs/trends
- Export to PDF
- Privacy controls


18. Homework Assignments

Feature: View and complete assigned homework

Controllers: ClientController.Homework()

Views:
- ~/Views/Patient/English/Homework.cshtml

Key Functionality:
- View assigned homework
- Download homework files
- Submit completed homework
- Upload attachments
- View homework history
- Track completion status

Homework Types:
- Reading materials
- Worksheets
- Exercises
- Reflections
- Videos to watch
- Activities to complete

API Endpoints:
- GET /Homework/GetClientHomework/{clientId}
- POST /Homework/SubmitHomework/{homeworkId}
- POST /Homework/UploadAttachment


19. Payment History & Wallet

Feature: View payment history and wallet balance

Controllers: ClientController.Wallet(), PaymentController

Views:
- ~/Views/Patient/English/Wallet.cshtml
- ~/Views/Patient/English/PaymentHistory.cshtml

Wallet Features:
- View current balance
- Add funds
- View transaction history
- Refund requests
- Promotional credit

Payment History:
- All transactions
- Appointment payments
- Refunds
- Package purchases
- Receipt download

API Endpoints:
- GET /Payment/GetWalletBalance/{userId}
- POST /Payment/AddFunds
- GET /Payment/GetTransactionHistory/{userId}
- POST /Payment/RequestRefund/{transactionId}


20. User Preferences

Feature: Set personal preferences for care provider matching

Controllers: UserPreferenceDataController, ClientController

Views:
- ~/Views/Patient/English/UserPreference.cshtml

Preference Categories:
1. Care Provider Preferences:
- Gender preference
- Language preference
- Specialty preference
- Age range preference

  1. Communication Preferences:
    - Preferred session type (video/audio)
    - Notification preferences
    - Reminder frequency

  2. Scheduling Preferences:
    - Preferred days
    - Preferred times
    - Time zone

API Endpoints:
- GET /UserPreference/GetPreferences/{userId}
- POST /UserPreference/SavePreferences

Features:
- Best match algorithm uses preferences
- Optional - can skip
- Can update anytime


21. Questionnaire History

Feature: View past screening/assessment results

Controllers: ClientController.QuestionnaireHistory()

Views:
- ~/Views/Patient/English/QuestionnaireHistory.cshtml

Key Functionality:
- View all completed questionnaires
- See score trends over time
- Compare results
- Download reports
- Share with care provider

API Endpoints:
- GET /Screening/GetUserResults/{userId}
- GET /Screening/GetResultDetails/{resultId}


22. Referrals

Feature: Refer friends and family

Controllers: ClientController.Referral()

Views:
- ~/Views/Patient/English/Referral.cshtml

Key Functionality:
- Generate referral link
- Share via email, SMS, social media
- Track referrals
- View referral rewards
- Redeem rewards

Rewards System:
- Credit for successful referrals
- Discounts on appointments
- Free sessions after X referrals

API Endpoints:
- GET /Referral/GetReferralCode/{userId}
- POST /Referral/SendReferral
- GET /Referral/GetReferralStats/{userId}


23. Rate Care Provider

Feature: Rate and review care providers after sessions

Controllers: ClientController.RateCareProvider()

Rating Categories:
- Overall experience (1-5 stars)
- Professionalism
- Communication
- Helpfulness
- Written review (optional)

API Endpoints:
- POST /Rating/SubmitRating
- GET /Rating/GetUserRatings/{userId}

Features:
- Can only rate after completed session
- One rating per session
- Anonymous review option


24. Packages & Subscriptions

Feature: Purchase appointment packages

Controllers: ClientController.Packages()

Package Types:
- 5 sessions package
- 10 sessions package
- Monthly subscription
- Custom packages (organization)

Benefits:
- Discounted rates
- Priority booking
- Flexible scheduling
- Valid for X months

API Endpoints:
- GET /Package/GetAvailablePackages
- POST /Package/PurchasePackage/{packageId}
- GET /Package/GetUserPackages/{userId}


25. Notifications

Feature: View all notifications

Controllers: ClientController.Notifications()

Notification Types:
- Appointment reminders
- New messages
- Homework assignments
- Prescription updates
- System announcements
- Promotional offers

API Endpoints:
- GET /Notification/GetUserNotifications/{userId}
- PUT /Notification/MarkAsRead/{notificationId}
- DELETE /Notification/Delete/{notificationId}


Care Provider Features (Authenticated)

26. Care Provider Dashboard

Feature: Provider home screen

Controllers: ServiceProviderController.Dashboard()

Views:
- ~/Views/Physician/English/Dashboard.cshtml
- ~/Views/Physician/Arabic/Dashboard.cshtml

Dashboard Sections:
- Today’s appointments
- Pending tasks (notes, homework review)
- New patient requests
- Messages
- Quick stats (total patients, sessions this week, etc.)
- Financial summary


27. Profile & CV Management

Feature: Manage professional profile

Controllers: ServiceProviderController.Profile()

Profile Sections:
1. Personal Information:
- Name, photo
- Contact details
- Languages spoken
- Gender

  1. Professional Information:
    - Specialties
    - Professional bio
    - Years of experience
    - License number
    - Professional memberships

  2. Education:
    - Degrees and certifications
    - Universities attended
    - Graduation years
    - Certificates upload

  3. Work Experience:
    - Current position
    - Previous positions
    - Workplace details
    - Duration

  4. Services Offered:
    - Session types
    - Pricing
    - Specializations

  5. Documents:
    - National ID
    - Professional license
    - Certificates
    - Insurance

API Endpoints:
- GET /ServiceProvider/GetProfile/{providerId}
- PUT /ServiceProvider/UpdateProfile
- POST /ServiceProvider/UploadDocument


28. Availability/Schedule Management

Feature: Manage working hours and availability

Controllers: PhysicianAvailabilityController, ServiceProviderController.Availability()

Views:
- ~/Views/Physician/English/Availability.cshtml

Key Functionality:
- Set weekly schedule
- Set recurring availability
- Add one-time slots
- Block time off
- Set buffer times between appointments
- Maximum daily appointments
- Emergency slot reservation

Schedule Components:
- Regular weekly schedule
- Exception dates (holidays, time off)
- Time zone management
- Slot duration configuration

API Endpoints:
- GET /Availability/GetProviderSchedule/{providerId}
- POST /Availability/SetRecurringSchedule
- POST /Availability/AddSlot
- DELETE /Availability/BlockSlot/{slotId}
- POST /Availability/SetTimeOff

Features:
- Calendar view
- Drag-and-drop slot creation
- Bulk operations
- Import/export schedule


29. Appointment Management (Provider)

Feature: View and manage patient appointments

Controllers: ServiceProviderController.Appointments()

Views:
- ~/Views/Physician/English/AppointmentList.cshtml
- ~/Views/Physician/English/AppointmentDetail.cshtml

Key Functionality:
- View all appointments (upcoming, past, cancelled)
- Filter by date, patient, status
- View appointment details
- Join session
- Cancel/reschedule
- Mark no-show
- Add pre-session notes

Appointment Details:
- Patient information
- Session type
- Date and time
- Status
- Payment status
- Session notes
- Prescriptions
- Homework

API Endpoints:
- GET /Booking/GetProviderBookings/{providerId}
- GET /Booking/GetBookingDetails/{bookingId}
- PUT /Booking/UpdateStatus/{bookingId}


30. Patient List & History

Feature: View all patients and their history

Controllers: ServiceProviderController.Patients(), ServiceProviderController.PatientHistory()

Views:
- ~/Views/Physician/English/PatientList.cshtml
- ~/Views/Physician/English/PatientHistory.cshtml

Patient List Features:
- All patients treated
- Active vs. inactive
- Search by name
- Filter by specialty/issue
- Quick stats (total sessions, last session)

Patient History:
- All sessions with patient
- Clinical notes
- Prescriptions given
- Homework assigned
- Assessment results
- Progress tracking

API Endpoints:
- GET /ServiceProvider/GetPatients/{providerId}
- GET /ServiceProvider/GetPatientHistory/{providerId}/{patientId}


31. Clinical Notes/SOAP Notes

Feature: Document session notes

Controllers: ServiceProviderController.ClinicalNotes()

Note Types:
1. SOAP Format (Subjective, Objective, Assessment, Plan):
- Subjective: Patient’s description
- Objective: Provider’s observations
- Assessment: Diagnosis/impression
- Plan: Treatment plan

  1. Progress Notes
  2. Treatment Plans

API Endpoints:
- POST /ClinicalNote/CreateNote
- GET /ClinicalNote/GetSessionNotes/{bookingId}
- PUT /ClinicalNote/UpdateNote/{noteId}

Features:
- Templates for common conditions
- Voice-to-text (if available)
- Secure storage
- Patient access control (can share or hide)


32. Prescription Creation

Feature: Create and manage prescriptions

Controllers: PrescriptionController

Views:
- ~/Views/Physician/English/CreatePrescription.cshtml
- ~/Views/Physician/English/PrescriptionList.cshtml

Prescription Fields:
- Patient information
- Date
- Medication details:
- Name (generic/brand)
- Dosage
- Frequency
- Duration
- Route of administration
- Instructions
- Diagnosis
- Provider signature

API Endpoints:
- POST /Prescription/Create
- GET /Prescription/GetProviderPrescriptions/{providerId}
- PUT /Prescription/Update/{prescriptionId}
- GET /Prescription/GeneratePDF/{prescriptionId}

Features:
- Drug database/search
- Medication history
- Interaction warnings
- Allergy checks
- E-prescription format
- Print/download PDF


33. Homework Assignment

Feature: Assign homework to patients

Controllers: ServiceProviderController.AssignHomework()

Homework Types:
- Worksheets
- Reading materials
- Exercises
- Videos
- Journaling prompts
- Behavioral experiments

API Endpoints:
- POST /Homework/AssignHomework
- GET /Homework/GetAssignedHomework/{providerId}
- GET /Homework/GetHomeworkSubmissions/{homeworkId}

Features:
- Template library
- File attachments
- Due dates
- Submission tracking
- Grading/feedback


34. Group Session Management

Feature: Create and manage group therapy sessions

Controllers: ServiceProviderController.ManageGroupSession()

Views:
- ~/Views/Physician/English/ManageGroupSession.cshtml
- ~/Views/Physician/English/GroupSessionList.cshtml

Key Functionality:
- Create group session
- Set date, time, duration
- Set maximum participants
- Set price per participant
- Manage participant list
- Send invitations
- Conduct session
- Share session recordings (optional)

Group Session Types:
- Support groups
- Psychoeducation
- Skills training
- Mindfulness sessions

API Endpoints:
- POST /GroupSession/Create
- GET /GroupSession/GetProviderSessions/{providerId}
- POST /GroupSession/InviteParticipants
- POST /GroupSession/Start/{sessionId}


35. Package Management

Feature: Create appointment packages for patients

Controllers: ServiceProviderController.ManagePackages()

Package Configuration:
- Number of sessions
- Validity period
- Price
- Description
- Session types included
- Discount percentage

API Endpoints:
- POST /Package/CreateProviderPackage
- GET /Package/GetProviderPackages/{providerId}
- PUT /Package/UpdatePackage/{packageId}


36. Financial Reports & Payslips

Feature: View earnings and financial reports

Controllers: ServiceProviderController.Payslip(), ServiceProviderController.FinancialReports()

Views:
- ~/Views/Physician/English/Payslip.cshtml
- ~/Views/Physician/English/FinancialReport.cshtml

Reports Include:
- Monthly earnings
- Session count
- Patient count
- Average session price
- Payment status (pending/paid)
- Tax information
- Downloadable payslips (PDF)

API Endpoints:
- GET /Payment/GetProviderEarnings/{providerId}
- GET /Payment/GetPayslip/{providerId}/{month}
- GET /Payment/GeneratePayslipPDF

Payslip Details:
- Provider information
- Period
- Sessions conducted
- Gross earnings
- Platform fees
- Net earnings
- Payment method


37. Referral Management (Provider)

Feature: Refer patients to other specialists

Controllers: ServiceProviderController.Referral()

Key Functionality:
- Search for specialists
- Create referral
- Add referral notes
- Track referral status
- View referral history

API Endpoints:
- POST /Referral/CreateProviderReferral
- GET /Referral/GetProviderReferrals/{providerId}


38. Collaboration Tools

Feature: Collaborate with other providers

Controllers: CollaborationController

Collaboration Types:
- Case consultations
- Supervision sessions
- Co-therapy
- Multidisciplinary team meetings

API Endpoints:
- POST /Collaboration/CreateRequest
- GET /Collaboration/GetRequests/{providerId}


39. Analytics Dashboard (Provider)

Feature: View practice analytics

Controllers: ServiceProviderController.Analytics()

Metrics:
- Total sessions
- Active patients
- Completion rates
- Average rating
- Revenue trends
- Popular time slots
- Patient demographics
- Cancellation rates

Visualization:
- Charts and graphs
- Trend analysis
- Comparative data


Admin Features

40. User Management

Feature: Manage all platform users

Controllers: Admin/CatalogueController, UserManagerController

Views:
- ~/Views/Admin/UserList.cshtml
- ~/Views/Admin/UserDetail.cshtml

Key Functionality:
- View all users (patients, providers, admins)
- Search and filter
- View user details
- Edit user information
- Activate/deactivate accounts
- Reset passwords
- Assign roles
- View user activity logs

API Endpoints:
- GET /Admin/GetAllUsers
- GET /Admin/GetUserDetails/{userId}
- PUT /Admin/UpdateUser/{userId}
- POST /Admin/DeactivateUser/{userId}


41. Care Provider Verification

Feature: Verify care provider credentials

Controllers: Admin/Catalogue/PhysicianListController

Verification Steps:
1. Review application
2. Verify identity documents
3. Verify professional license
4. Verify education credentials
5. Background check
6. Interview (optional)
7. Approve or reject

API Endpoints:
- GET /Admin/GetPendingProviders
- POST /Admin/VerifyProvider/{providerId}
- POST /Admin/RejectProvider/{providerId}


42. Catalog Management

Feature: Manage platform catalogs

Controllers: Admin/Catalogue/CatalogueController

Catalog Types:
- Specialties
- Languages
- Countries/Cities
- Education types
- Physician roles
- User preferences
- Screening questions
- Service types

API Endpoints:
- GET /Catalogue/Get{EntityType}
- POST /Catalogue/Add{EntityType}
- PUT /Catalogue/Update{EntityType}
- DELETE /Catalogue/Delete{EntityType}


43. Promotion/Discount Management

Feature: Create and manage promotional codes

Controllers: Admin/Catalogue/ManagePromotionController

Promotion Types:
- Percentage discount
- Fixed amount discount
- First session free
- Package discount
- Seasonal promotions

Configuration:
- Code
- Discount value
- Valid from/to
- Usage limits
- User type restrictions
- Service restrictions

API Endpoints:
- POST /Promotion/Create
- GET /Promotion/GetAll
- PUT /Promotion/Update/{promoId}
- DELETE /Promotion/Delete/{promoId}


44. Payment Configuration

Feature: Configure payment settings

Controllers: Admin/Catalogue/PaymentController

Settings:
- Payment gateway configuration
- Platform fees
- Provider commission rates
- Tax rates
- Refund policies
- Payment methods enabled

API Endpoints:
- GET /Admin/GetPaymentConfig
- PUT /Admin/UpdatePaymentConfig


45. System Configuration

Feature: Configure application settings

Controllers: Admin/Catalogue/CatalogueController

Configuration Areas:
- Application constants
- Email templates
- Notification settings
- Session durations
- Booking rules
- Security settings

API Endpoints:
- GET /ApplicationConfiguration/GetAll
- PUT /ApplicationConfiguration/Update


46. Reports & Analytics (Admin)

Feature: System-wide reports

Controllers: Admin/ReportsController

Report Types:
- User growth
- Appointment statistics
- Revenue reports
- Provider performance
- Patient engagement
- Platform usage
- Error logs

Export Formats:
- PDF
- Excel
- CSV

API Endpoints:
- GET /Admin/GetReport/{reportType}
- POST /Admin/ExportReport


47. Organization Management

Feature: Manage corporate/organization accounts

Controllers: OrganizationController

Organization Features:
- Create organization
- Add organization users
- Set organization packages
- View organization reports
- Manage organization billing

API Endpoints:
- POST /Organization/Create
- GET /Organization/GetAll
- GET /Organization/GetDetails/{orgId}
- PUT /Organization/Update/{orgId}


48. Content Management

Feature: Manage website content

Controllers: ContentManagerController

Content Types:
- Pages (About, FAQ, etc.)
- Blog posts
- Testimonials
- Announcements
- Email templates

API Endpoints:
- GET /Content/GetPage/{pageName}
- PUT /Content/UpdatePage
- POST /Content/CreateBlogPost


49. SEO Management

Feature: Manage SEO metadata

Controllers: SEOManagerController

SEO Elements:
- Page titles
- Meta descriptions
- Keywords
- Open Graph tags
- Structured data
- Canonical URLs

API Endpoints:
- GET /SEO/GetPageMeta/{pageName}
- PUT /SEO/UpdatePageMeta


50. Event Management

Feature: Create and manage platform events

Controllers: EventController

Event Types:
- Webinars
- Workshops
- Training sessions
- Conferences

API Endpoints:
- POST /Event/Create
- GET /Event/GetAll
- PUT /Event/Update/{eventId}


Accountant Features

51. Financial Management

Feature: Manage platform finances

Controllers: AccountantController

Key Functionality:
- View all transactions
- Provider payments
- Refund processing
- Financial reports
- Tax reports
- Reconciliation

API Endpoints:
- GET /Finance/GetAllTransactions
- GET /Finance/GetProviderPayments
- POST /Finance/ProcessRefund
- GET /Finance/GenerateReport


Marketing Manager Features

52. Campaign Management

Feature: Manage marketing campaigns

Controllers: MarkeetingController

Campaign Types:
- Email campaigns
- SMS campaigns
- Push notifications
- Social media

API Endpoints:
- POST /Marketing/CreateCampaign
- GET /Marketing/GetCampaigns
- GET /Marketing/GetCampaignStats/{campaignId}


Cross-Cutting Features

53. Multilingual Support

Implementation:
- Language stored in session
- Separate views for English/Arabic
- RTL support for Arabic
- Language switcher in UI

Supported Languages:
- English (en)
- Arabic (ar) with RTL


54. Notifications System

Notification Channels:
- In-app notifications
- Email notifications
- SMS notifications (via API)
- Push notifications (mobile)

Notification Types:
- Appointment reminders (24 hours, 1 hour before)
- New messages
- Homework assignments
- Payment confirmations
- System updates


55. File Management

File Types:
- Profile photos
- Credentials/documents
- Homework files
- Prescription PDFs
- Session recordings

Storage:
- Media Upload API integration
- Secure file storage
- Access control


56. Analytics Integration

Integrations:
- Google Analytics
- Application Insights
- Custom event tracking

Tracked Events:
- Page views
- User registrations
- Bookings
- Payments
- User interactions


Technical Dependencies

External APIs

  1. PsyterAPI - Main backend
  2. Media Upload API - File storage
  3. Scheduling API - Appointment scheduling (if separate)
  4. Payment Gateway - Payment processing
  5. Google Analytics API - Analytics data
  6. SMS Gateway - SMS notifications
  7. Email Service - Email notifications

Third-Party Libraries

  • jQuery 3.3.1
  • Bootstrap 3.0 / 5.x
  • Font Awesome
  • FullCalendar (for calendar views)
  • Chart.js (for analytics)
  • WebRTC (for video sessions)
  • Sweet Alert (for alerts)

Browser Requirements

  • Modern browsers (Chrome, Firefox, Safari, Edge)
  • WebRTC support for video sessions
  • HTML5 support
  • Cookies enabled
  • JavaScript enabled

Feature Priorities

Critical Features

  • User authentication
  • Appointment booking
  • Video sessions
  • Payment processing
  • Prescription management

High Priority

  • Messaging
  • Profile management
  • Schedule management
  • Patient history

Medium Priority

  • Diary/journal
  • Homework
  • Analytics
  • Referrals

Low Priority

  • Group sessions
  • Packages
  • Collaboration
  • Events

Document Version: 1.0
Last Updated: November 2025
Total Features Documented: 56+
Next Review: Quarterly