6.0 Partnerships - FatinaAlTaherr/HopeConnect GitHub Wiki

Overview

The Partnership Management System facilitates relationships between HopeConnect and various partner organizations (NGOs, charities, corporations) that support orphanages. It handles partner registration, verification, and tracking of partnership details.

Models

Partner

Core entity representing a partner organization.

  • Attributes:
    • id: Unique identifier (auto-generated)
    • name: Organization name
    • contactEmail: Primary contact email
    • phone: Contact phone number
    • type: Partner classification (NGO, CHARITY, etc.)
    • supportedOrphanage: Associated orphanage (many-to-one)
    • partnershipStartDate: When partnership began (auto-set)
    • updatedAt: Last modification timestamp (auto-updated)
    • verified: Verification status
    • verificationDocumentsUrl: Storage link for verification docs

PartnerType (Enum)

Classification of partner organizations:

  • NGO
  • CHARITY
  • HUMANITARIAN_ORG
  • CORPORATE_SPONSOR
  • INDIVIDUAL

DTOs

PartnerDTO

Data Transfer Object for partner information.

  • Fields:
    • All Partner fields
    • orphanageSummary: Nested DTO with orphanage details

OrphanageSummaryDTO

Condensed orphanage information.

  • Fields:
    • id, name, email, location

Services

PartnerService

Core partnership business logic.

  • Key Methods:
    • createPartner(): Registers new partner with email notification
    • verifyPartner(): Admin verification with document storage
    • getPartnersByType(): Filters by partner classification
    • getPartnersByVerificationStatus(): Filters by verification state
    • getPartnersByOrphanage(): Finds partners supporting specific orphanage
    • mapToDTO(): Converts Partner to PartnerDTO

Controllers

PartnerController

Handles all partnership-related HTTP requests.

  • Endpoints:
    • GET /partners/type/{type}: Lists partners by type
    • GET /partners/status/verified: Lists verified partners
    • GET /partners/status/pending: Lists pending partners
    • POST /partners: Creates new partnership
    • GET /partners/orphanage/{orphanageId}: Lists orphanage's partners
    • PUT /partners/{id}/verify: Verifies partner (admin)

Workflows

Partner Registration

  1. Organization submits partnership request
  2. System sends document request email
  3. Admin reviews and verifies with documents
  4. Partner appears in verified listings

Verification Process

  1. Admin accesses pending partners list
  2. Reviews submitted documents
  3. Updates verification status
  4. System records verification proof

Orphanage Matching

  1. Orphanage views potential partners
  2. Filters by partner type/status
  3. Initiates partnership contact

Email Notifications

  • Registration Confirmation:
    • Sent to new partners
    • Contains document submission instructions
  • Verification Alerts:
    • Coming soon feature
    • Will notify upon verification completion

Security Considerations

  • Verification endpoint requires admin privileges
  • All endpoints require authentication
  • Sensitive documents stored securely
  • Audit trails for verification changes

Example Payloads

Partner Creation Request

{
  "name": "Helping Hands NGO",
  "contactEmail": "[email protected]",
  "phone": "+1234567890",
  "type": "NGO",
  "supportedOrphanage": {
    "id": 1
  }
}