Saltearse al contenido

Gestión de Proveedores

1. Descripción General de la Funcionalidad

El sistema de gestión de proveedores maneja el ciclo de vida completo de los proveedores de servicios externos, desde el registro inicial hasta la validación de documentos, cálculo de elegibilidad, participación en subastas y seguimiento de rendimiento. El sistema asegura que todos los proveedores cumplan con los requisitos regulatorios y de calidad mediante la carga obligatoria de documentos (ARL, EPS, RUT, certificados de experiencia) con validación de fecha de vencimiento, cálculo automatizado de elegibilidad para participación en marketplace, seguimiento de métricas de rendimiento a través de órdenes y alertas de cumplimiento para documentos que vencen. Esta gestión integral permite a Algesta mantener una red de proveedores calificada y conforme mientras automatiza la validación de elegibilidad y reduce la carga administrativa.


2. Business Context

Algesta needed a scalable system to manage qualified, compliant external providers while ensuring regulatory compliance (occupational risk insurance, health insurance, tax registration) and quality standards. The previous manual process involved spreadsheets, email attachments, and periodic manual reviews, leading to compliance risks, expired Documentoation going unnoticed, and inconsistent eligibility decisions. The provider management system centralizes provider data, automates Document validation, and provides real-time visibility into provider eligibility and performance. This is critical for marketplace auctions, where only eligible providers can bid, and for compliance reporting to clients and regulators.


3. Provider Lifecycle

Lifecycle Workflow

flowchart TD
    A[Provider Applies] --> B[Registration Form Submitted]
    B --> C{Initial Validation}
    C -->|Invalid| D[Rejection Notification]
    C -->|Valid| E[Account Created - Status: PENDING]
    E --> F[Provider Uploads Documents]
    F --> G{Document Validation}
    G -->|Rejected| H[Document Rejection Notification]
    H --> F
    G -->|Approved| I[Status: ACTIVE]
    I --> J[Eligible for Auctions]
    J --> K[Participates in Auctions]
    K --> L[Executes Orders]
    L --> M[Performance Tracked]
    M --> N{Performance OK?}
    N -->|Yes| O[Rating Updated]
    O --> J
    N -->|No| P[Status: UNDER_REVIEW]
    P --> Q{Review Result}
    Q -->|Improvement Plan| R[Status: ACTIVE_WITH_CONDITIONS]
    R --> J
    Q -->|Suspension| S[Status: SUSPENDED]
    S --> T[No Auction Access]

    U[Document Expiration Alert] --> V{Document Renewed?}
    V -->|No| W[Status: INACTIVE]
    W --> X[Ineligible for Auctions]
    V -->|Yes| I

    I --> U

4. User Stories by Sprint

Sprint 3: Provider Registration and Documentos

US-S3-010: Provider Registration

  • Descripción: As a provider, I want to register on the platform so I can participate in auctions
  • Acceptance Criteria:
    • Registration form with: company name, tax ID (NIT), contact person, email, phone, address
    • Service types selection (multi-select: plumbing, electrical, HVAC, etc.)
    • Service areas selection (multi-select: cities/regions)
    • Email verification required
    • Account created with Estado “Pendiente”
    • Confirmation email sent
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/commands/provider/process-registration.handler.ts - Registration command
    • algesta-dashboard-react/src/Funcionalidades/providers/Componentes/RegistrationForm.tsx - Registration UI
  • Pruebas: Sprint 3 Pruebas - registration validated
  • API: POST /api/providers/register - Register new provider

US-S3-011: Documento Upload

  • Descripción: As a provider, I want to upload required Documentos so I can become eligible for auctions
  • Acceptance Criteria:
    • Upload form for each Documento type:
      • ARL (occupational risk insurance) with expiration date
      • EPS (health insurance) with expiration date
      • RUT (tax registration) with expiration date
      • Experience certificate with expiration date
      • Other Documentos per service type
    • File validation: type (PDF, JPG, PNG), size (max 5MB)
    • Preview uploaded Documentos
    • Delete and re-upload if needed
    • Documentos uploaded to Azure Blob Storage
    • URLs stored in provider profile
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/commands/Documento/create-Documento.handler.ts - Upload command
    • algesta-ms-provider-nestjs/src/shared/services/azure-storage.service.ts - Azure Blob integration
  • Pruebas: Sprint 3 Pruebas notes - Document upload validated
  • API: POST /api/providers/:id/Documentos - Upload Documento

US-S3-012: View Provider Profile

  • Descripción: As an agent, I want to view a provider’s profile with all Documentos and Estado
  • Acceptance Criteria:
    • Profile shows: company info, services offered, service areas, rating, Estado
    • Documento list with: type, upload date, expiration date, Estado (valid/expired)
    • Visual indicators for expired Documentos (red icon)
    • Performance Métricas: orders Completod, on-time rate, client satisfaction
    • History of orders executed
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/queries/provider/get-provider-by-id.handler.ts - Get provider query
    • algesta-dashboard-react/src/Funcionalidades/providers/Componentes/ProviderProfile.tsx - Profile UI
  • API: GET /api/providers/:id - Get provider details

Sprint 4: Validation and Eligibility

US-S4-015: Documento Validation by Agent

  • Descripción: As an agent, I want to review and approve/reject provider Documentos
  • Acceptance Criteria:
    • List of Pendiente Documento reviews
    • View Documento in modal
    • Approve or reject with reason
    • If approved, Documento Estado “APPROVED”
    • If rejected, provider notified with reason
    • Provider can re-upload rejected Documento
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/commands/Documento/validate-Documento.handler.ts - Validation command
  • API: POST /api/providers/:id/Documentos/:docId/validate - Validate Documento

US-S4-016: Automated Eligibility Calculation

  • Descripción: As a system, I want to automatically calculate provider eligibility for auctions
  • Acceptance Criteria:
    • Eligibility checked when auction published
    • Provider eligible if:
      • Account Estado Activo
      • All required Documentos APPROVED
      • No Documentos expired
      • Service type matches order
      • Location matches order
    • Eligibility Estado visible in provider profile
    • Ineligible providers cannot see or bid on auctions
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/queries/provider/validate-provider-eligibility.handler.ts - Eligibility validation
  • API: GET /api/providers/:id/eligibility?orderId=:orderId - Check eligibility

US-S4-017: Expiration Alerts

  • Descripción: As a provider, I want to receive alerts when my Documentos are about to expire
  • Acceptance Criteria:
    • Email alert sent 30 days before expiration
    • Email alert sent 15 days before expiration
    • Email alert sent 7 days before expiration
    • Email alert sent on expiration day
    • Dashboard shows expiring Documentos warning
    • After expiration, Estado changes to INActivo
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-notifications-nestjs/src/jobs/check-expiring-Documentos.job.ts - Scheduled job
  • Pruebas: Sprint 4 - expiration alert emails validated

Sprint 5-8: Performance Tracking and History

US-S5-020: Provider Performance Métricas

  • Descripción: As an agent, I want to see provider performance Métricas to inform selection decisions
  • Acceptance Criteria:
    • Métricas calculated automatically:
      • Total orders executed
      • Completion rate (orders Completod / orders assigned)
      • On-time delivery rate
      • Average client rating (1-5 stars)
      • Average agent rating (1-5 stars)
      • Rejection rate (orders requiring rework)
    • Métricas visible in provider profile
    • Métricas visible in auction offer details
    • Métricas updated after each order completion
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/queries/provider/get-provider-performance.handler.ts - Performance query
    • Performance calculated from OrderHistory and feedback records
  • API: GET /api/providers/:id/performance - Get performance Métricas

US-S5-021: Provider Order History

  • Descripción: As an agent, I want to see a provider’s order history to assess experience
  • Acceptance Criteria:
    • List of all orders executed by provider
    • For each order: order number, client, service type, date, Estado, rating
    • Filter by date range, service type, Estado
    • Sort by date, rating
    • Click to view order details
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/queries/provider/get-provider-order-history.handler.ts - Order history query
  • API: GET /api/providers/:id/orders - Get provider order history

US-S7-030: Provider Suspension

  • Descripción: As an agent, I want to suspend a provider for poor performance or compliance issues
  • Acceptance Criteria:
    • Button “Suspend Provider” with confirmation
    • Reason field required
    • Estado changes to SUSPENDED
    • Provider notified via email
    • Provider cannot access auctions
    • Orders En Progreso can be Completod
    • Suspension visible in provider profile
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/commands/provider/suspend-provider.handler.ts - Suspension command
  • API: POST /api/providers/:id/suspend - Suspend provider

US-S7-031: Provider Reactivation

  • Descripción: As an agent, I want to reactivate a suspended provider after issue resolution
  • Acceptance Criteria:
    • Button “Reactivate Provider” with confirmation
    • Reason field required
    • Estado changes to Activo
    • Provider notified via email
    • Provider can access auctions again
    • Reactivation tracked in provider history
  • Estado: ✅ Completo
  • Implementación:
    • algesta-ms-provider-nestjs/src/application/handlers/commands/provider/reactivate-provider.handler.ts - Reactivation command
  • API: POST /api/providers/:id/reactivate - Reactivate provider

5. Provider Data Model

Provider Entity

Reference: algesta-ms-provider-nestjs/src/domain/entities/provider.entity.ts

FieldTypeDescriptionRequired
_idObjectIdUnique identifierYes
companyNameStringCompany legal nameYes
taxIdStringNIT (tax ID)Yes
contactPersonStringPrimary contact nameYes
emailStringEmail addressYes
phoneStringPhone numberYes
addressObjectCompany address (street, city, region, postal code)Yes
serviceTypesArrayServices offered (PLUMBING, ELECTRICAL, HVAC, etc.)Yes
serviceAreasArrayCities/regions servedYes
EstadoEnumPendiente, Activo, INActivo, SUSPENDED, UNDER_REVIEW, Activo_WITH_CONDITIONSYes
DocumentosArrayUploaded DocumentosNo
ratingNumberAverage rating (1-5 stars)No
ordersCompletodNumberTotal orders executedYes (default: 0)
completionRateNumberPercentage of orders CompletodNo
onTimeRateNumberPercentage of orders delivered on timeNo
createdAtDateRegistration dateYes
updatedAtDateLast updateYes
lastActivoDateDateLast auction participation or order activityNo
suspensionReasonStringReason if suspendedNo
suspendedAtDateSuspension dateNo
suspendedByObjectIdAgent who suspendedNo

6. Documento Types and Requisitos

Required Documentos

Documento TypeDescriptionExpiration RequiredValidation
ARLOccupational risk insurance (Aseguradora de Riesgos Laborales)YesMust be valid, from recognized insurer
EPSHealth insurance (Entidad Promotora de Salud)YesMust be valid, from recognized provider
RUTTax registration (Registro Único Tributario)YesMust match company tax ID
Experience CertificateProof of experience in service typeYesFrom previous clients or industry associations
Chamber of CommerceBusiness registration certificateYesFrom local chamber
Work SamplesPhotos or reports of previous workNoQuality assessment

Documento Sub-Documento

FieldTypeDescription
typeEnumARL, EPS, RUT, EXPERIENCE, CHAMBER, WORK_SAMPLE, OTHER
fileUrlStringAzure Blob URL
fileNameStringOriginal file name
uploadDateDateWhen uploaded
expirationDateDateWhen expires (if applicable)
EstadoEnumPendiente, APPROVED, REJECTED, EXPIRED
validatedByObjectIdAgent who validated
validationDateDateWhen validated
rejectionReasonStringReason if rejected

Reference: algesta-ms-provider-nestjs/src/domain/entities/Documento.entity.ts


7. Documento Validation Rules

File Validation

  1. File Type: PDF, JPG, JPEG, PNG only
  2. File Size: Maximum 5MB per file
  3. File Name: Sanitized to prevent security issues
  4. Virus Scan: Files scanned before storage (if configured)

Content Validation (Manual by Agent)

  1. Legibility: Documento text clearly readable
  2. Completoness: All required information visible
  3. Authenticity: Documento appears genuine (watermarks, logos, signatures)
  4. Expiration Date: Date is in the future (for Documentos requiring expiration)
  5. Name Match: Company name matches provider registration
  6. Tax ID Match: Tax ID matches provider NIT (for RUT)

Automated Validation

  1. Expiration Check: Daily job checks for expired or expiring Documentos
  2. Eligibility Recalculation: After Document validation or expiration
  3. Alert Triggers: 30, 15, 7, 0 days before expiration

Implementación: algesta-ms-provider-nestjs/src/infrastructure/controllers/Documentos.controller.ts


8. Eligibility Calculation

Eligibility Logic

function isProviderEligible(provider: Provider, order: Order): boolean {
// 1. Account must be ACTIVE
if (provider.status !== ProviderStatus.ACTIVE) {
return false;
}
// 2. All required documents must be APPROVED and not expired
const requiredDocs = ["ARL", "EPS", "RUT", "EXPERIENCE"];
for (const docType of requiredDocs) {
const doc = provider.documents.find((d) => d.type === docType);
if (!doc || doc.status !== "APPROVED" || isExpired(doc.expirationDate)) {
return false;
}
}
// 3. Service type must match
if (!provider.serviceTypes.includes(order.serviceType)) {
return false;
}
// 4. Location must match
if (!provider.serviceAreas.includes(order.location.city)) {
return false;
}
// 5. Videocall attendance (if required for service type)
if (requiresVideocall(order.serviceType) && !provider.videocallAttended) {
return false;
}
return true;
}

Ineligibility Reasons

When a provider is ineligible, the system provides specific reasons:

interface IneligibilityReason {
reason: string;
details: string;
}
// Examples:
// { reason: 'DOCUMENTS_EXPIRED', details: 'ARL, EPS expired' }
// { reason: 'SERVICE_TYPE_MISMATCH', details: 'Provider does not offer ELECTRICAL' }
// { reason: 'LOCATION_MISMATCH', details: 'Provider does not serve BOGOTA' }
// { reason: 'ACCOUNT_SUSPENDED', details: 'Account suspended for poor performance' }
// { reason: 'VIDEOCALL_REQUIRED', details: 'Technical videocall attendance required' }

Implementación: algesta-ms-provider-nestjs/src/application/handlers/queries/provider/validate-provider-eligibility.handler.ts


9. Performance Métricas

Calculated Métricas

MétricaCalculationUpdate FrequencyUse Case
Completion Rate(Orders Completod / Orders Assigned) × 100%After each orderAgent selection decision
On-Time Rate(Orders Delivered On Time / Orders Completod) × 100%After each orderReliability indicator
Average Client RatingSum(Client Ratings) / Count(Ratings)After client approvalQuality indicator
Average Agent RatingSum(Agent Ratings) / Count(Ratings)After agent reviewQuality indicator
Rejection Rate(Orders Requiring Rework / Orders Completod) × 100%After each orderQuality indicator
Response TimeAverage time from auction publication to offer submissionAfter offer submissionResponsiveness indicator
Days Since Last ActivityCurrent Date - Last Order Completion DateDailyEngagement indicator

Performance Tracking Flow

sequenceDiagram
    participant Provider
    participant OrdersMS
    participant ProviderMS

    Note over Provider,ProviderMS: Order Execution Complete

    OrdersMS->>OrdersMS: Client approves work
    OrdersMS->>OrdersMS: Update order state to TrabajoAprobado
    OrdersMS->>ProviderMS: OrderCompletedEvent
    ProviderMS->>ProviderMS: Update ordersCompleted counter
    ProviderMS->>ProviderMS: Calculate completionRate
    ProviderMS->>ProviderMS: Calculate onTimeRate (if deliveryDate <= dueDate)
    ProviderMS->>ProviderMS: Update lastActiveDate

    OrdersMS->>ProviderMS: ClientRatingEvent (rating: 4.5)
    ProviderMS->>ProviderMS: Recalculate average rating

    alt Order required rework
        OrdersMS->>ProviderMS: OrderReworkEvent
        ProviderMS->>ProviderMS: Update rejectionRate
    end

10. API Endpoints Resumen

EndpointMétodoDescriptionActorSprint
/api/providers/registerPOSTRegister new providerProviderS3
/api/providersGETList all providers with filtersAgentS3
/api/providers/:idGETGet provider detailsAgent/ProviderS3
/api/providers/:idPUTUpdate provider infoProviderS3
/api/providers/:id/DocumentosPOSTUpload DocumentoProviderS3
/api/providers/:id/Documentos/:docIdGETGet DocumentoAgent/ProviderS3
/api/providers/:id/Documentos/:docIdDELETEDelete DocumentoProviderS3
/api/providers/:id/Documentos/:docId/validatePOSTValidate DocumentoAgentS4
/api/providers/:id/eligibilityGETCheck eligibility for orderSystemS4
/api/providers/:id/performanceGETGet performance MétricasAgentS5
/api/providers/:id/ordersGETGet order historyAgentS5
/api/providers/:id/suspendPOSTSuspend providerAgentS7
/api/providers/:id/reactivatePOSTReactivate providerAgentS7
/api/providers/expiring-DocumentosGETList providers with expiring docsAgentS4
/api/providers/:id/ratingPOSTSubmit ratingClient/AgentS5

Reference: algesta-ms-provider-nestjs/src/infrastructure/controllers/provider.controller.ts, algesta-ms-provider-nestjs/src/infrastructure/controllers/Documentos.controller.ts


11. Integration Points

Internal Service Integration

  1. Orders Service:

    • Provider assignment after auction selection
    • Order execution tracking
    • Performance Métricas updates
  2. Auctions Service:

    • Eligibility validation before offer submission
    • Provider performance visible in offers
  3. Notifications Service:

    • Registration confirmation
    • Document validation notifications
    • Expiration alerts
    • Performance feedback

External Integration

  1. Azure Blob Storage: Documento storage
  2. Email Service: Notifications and alerts
  3. WhatsApp (Jelou): Auction notifications

12. Key Workflows with Sequence Diagrams

Provider Registration

sequenceDiagram
    participant Provider
    participant Portal
    participant Gateway
    participant ProviderMS
    participant NotificationsMS

    Provider->>Portal: Access registration page
    Portal->>Provider: Show registration form
    Provider->>Portal: Fill form and submit
    Portal->>Gateway: POST /api/providers/register
    Gateway->>ProviderMS: ProcessRegistrationCommand
    ProviderMS->>ProviderMS: Validate data (unique email, valid NIT)
    alt Data invalid
        ProviderMS-->>Portal: Error: Email already exists
    else Data valid
        ProviderMS->>ProviderMS: Create Provider entity (status: PENDING)
        ProviderMS->>ProviderMS: Save to MongoDB
        ProviderMS->>NotificationsMS: Send registration confirmation
        NotificationsMS->>Provider: Email: "Welcome to Algesta"
        ProviderMS-->>Portal: Provider created successfully
        Portal->>Provider: Show success message + next steps (upload documents)
    end

Documento Upload and Validation

sequenceDiagram
    participant Provider
    participant Portal
    participant Gateway
    participant ProviderMS
    participant AzureBlob
    participant Agent
    participant NotificationsMS

    Provider->>Portal: Select document file
    Portal->>Gateway: POST /api/providers/:id/documents
    Gateway->>ProviderMS: CreateDocumentCommand
    ProviderMS->>ProviderMS: Validate file (type, size)
    ProviderMS->>AzureBlob: Upload file
    AzureBlob-->>ProviderMS: File URL
    ProviderMS->>ProviderMS: Create Document record (status: PENDING)
    ProviderMS->>ProviderMS: Save to Provider.documents
    ProviderMS->>NotificationsMS: Notify agent (new document for review)
    ProviderMS-->>Portal: Document uploaded successfully

    Note over Agent,NotificationsMS: Agent Reviews Document

    Agent->>Gateway: POST /api/providers/:id/documents/:docId/validate
    Gateway->>ProviderMS: ValidateDocumentCommand
    alt Approved
        ProviderMS->>ProviderMS: Update document status to APPROVED
        ProviderMS->>ProviderMS: Recalculate provider eligibility
        alt All required docs approved
            ProviderMS->>ProviderMS: Update provider status to ACTIVE
        end
        ProviderMS->>NotificationsMS: Notify provider (document approved)
        NotificationsMS->>Provider: Email: "Your ARL document was approved"
    else Rejected
        ProviderMS->>ProviderMS: Update document status to REJECTED
        ProviderMS->>NotificationsMS: Notify provider (document rejected with reason)
        NotificationsMS->>Provider: Email: "Your ARL was rejected: reason"
    end

Eligibility Check During Auction

sequenceDiagram
    participant Provider
    participant Portal
    participant Gateway
    participant ProviderMS

    Provider->>Portal: Browse available auctions
    Portal->>Gateway: GET /api/auctions?providerId=:id
    Gateway->>ProviderMS: ListAuctionsQuery
    ProviderMS->>ProviderMS: Get all active auctions
    ProviderMS->>ProviderMS: Filter by eligibility

    loop For each auction
        ProviderMS->>ProviderMS: Check provider eligibility
        alt Provider eligible
            ProviderMS->>ProviderMS: Include auction in list
        else Provider not eligible
            ProviderMS->>ProviderMS: Exclude auction
        end
    end

    ProviderMS-->>Portal: List of eligible auctions

    Provider->>Portal: Click auction to view details
    Portal->>Gateway: GET /api/auctions/:id
    Gateway->>ProviderMS: GetAuctionDetailQuery
    ProviderMS->>ProviderMS: Check provider eligibility
    alt Eligible
        ProviderMS-->>Portal: Show auction details + bid form
    else Not eligible
        ProviderMS->>ProviderMS: Get ineligibility reasons
        ProviderMS-->>Portal: Show "Not eligible" message with reasons
        Portal->>Provider: "You cannot bid: ARL expired, EPS expired"
    end

Performance Update After Order Completion

sequenceDiagram
    participant OrdersMS
    participant ProviderMS
    participant NotificationsMS
    participant Provider

    OrdersMS->>OrdersMS: Client approves work (TrabajoAprobado)
    OrdersMS->>ProviderMS: OrderCompletedEvent
    ProviderMS->>ProviderMS: Get provider by orderId
    ProviderMS->>ProviderMS: Update ordersCompleted counter
    ProviderMS->>ProviderMS: Calculate completionRate
    ProviderMS->>ProviderMS: Check if delivered on time
    alt On time
        ProviderMS->>ProviderMS: Increment onTimeOrders counter
    end
    ProviderMS->>ProviderMS: Recalculate onTimeRate
    ProviderMS->>ProviderMS: Update lastActiveDate

    OrdersMS->>ProviderMS: ClientRatingEvent (rating: 4.5, feedback: "Great work!")
    ProviderMS->>ProviderMS: Add rating to provider
    ProviderMS->>ProviderMS: Recalculate average rating
    ProviderMS->>NotificationsMS: Notify provider of rating
    NotificationsMS->>Provider: Email: "You received a 4.5 star rating"

    ProviderMS->>ProviderMS: Check if performance thresholds met
    alt Performance excellent (rating > 4.5, onTimeRate > 95%)
        ProviderMS->>ProviderMS: Tag as "Top Provider"
    else Performance poor (rating < 3.0, rejectionRate > 20%)
        ProviderMS->>ProviderMS: Update status to UNDER_REVIEW
        ProviderMS->>NotificationsMS: Notify agent (provider needs review)
    end

13. Pruebas Evidence

From unified_Pruebas_notes.md:

Sprint 3 - Provider Registration and Documentos

Scenarios Tested:

  1. Provider Registration:

    • Action: Provider submits registration form
    • Expected: Account created with Estado Pendiente, confirmation email sent
    • Result: ✅ Validated
  2. Documento Upload:

    • Action: Provider uploads ARL, EPS, RUT Documentos
    • Expected: Files uploaded to Azure Blob, URLs stored in provider profile
    • Result: ✅ Validated
  3. Documento Validation by Agent:

    • Action: Agent approves/rejects Documentos
    • Expected: Documento Estado updated, provider notified
    • Result: ✅ Validated
  4. Eligibility Calculation:

    • Action: All required Documentos approved
    • Expected: Provider Estado changes to Activo, eligible for auctions
    • Result: ✅ Validated

All acceptance criteria validated


14. Known Issues and Future Enhancements

From Completo_backlog_analysis.md:

🟨 Essential MVP Improvements

  • Documento Auto-Validation: OCR to extract expiration dates automatically
  • Provider Self-Service: Allow providers to update service types and areas
  • Bulk Documento Upload: Upload multiple Documentos at once
  • Documento Version History: Track Documento re-uploads and changes

🟩 Post-MVP Operaciones

  • Provider Reputation System: Detailed Métricas (response time, quality, reliability)
  • Provider Certifications: Track industry certifications and specializations
  • Provider Capacity Management: Track current workload and availability
  • Automated Background Checks: Integration with verification services

🟦 Future Backlog

  • Provider Mobile App: Dedicated app for providers to manage profile and orders
  • Provider Training Program: Online courses and certification
  • Provider Community: Forum and knowledge sharing
  • AI-Based Provider Matching: ML model to recommend best providers for orders

15. Referencias Cruzadas

Arquitectura Documentoation

Sprint Documentoation

Sprint 3-4 Documentoation (see docs/Sprint_3.md and Sprint_4.md in project Repositorio)

Pruebas

Unified Pruebas Notes (Sprint 3) (see test/unified_Pruebas_notes.md in project Repositorio)


Last Updated: 2025-11-20 | Next Review: End of Guarantee Phase