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 commandalgesta-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
- Upload form for each Documento type:
- Estado: ✅ Completo
- Implementación:
algesta-ms-provider-nestjs/src/application/handlers/commands/Documento/create-Documento.handler.ts- Upload commandalgesta-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 queryalgesta-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
- Métricas calculated automatically:
- 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
| Field | Type | Description | Required |
|---|---|---|---|
_id | ObjectId | Unique identifier | Yes |
companyName | String | Company legal name | Yes |
taxId | String | NIT (tax ID) | Yes |
contactPerson | String | Primary contact name | Yes |
email | String | Email address | Yes |
phone | String | Phone number | Yes |
address | Object | Company address (street, city, region, postal code) | Yes |
serviceTypes | Array | Services offered (PLUMBING, ELECTRICAL, HVAC, etc.) | Yes |
serviceAreas | Array | Cities/regions served | Yes |
Estado | Enum | Pendiente, Activo, INActivo, SUSPENDED, UNDER_REVIEW, Activo_WITH_CONDITIONS | Yes |
Documentos | Array | Uploaded Documentos | No |
rating | Number | Average rating (1-5 stars) | No |
ordersCompletod | Number | Total orders executed | Yes (default: 0) |
completionRate | Number | Percentage of orders Completod | No |
onTimeRate | Number | Percentage of orders delivered on time | No |
createdAt | Date | Registration date | Yes |
updatedAt | Date | Last update | Yes |
lastActivoDate | Date | Last auction participation or order activity | No |
suspensionReason | String | Reason if suspended | No |
suspendedAt | Date | Suspension date | No |
suspendedBy | ObjectId | Agent who suspended | No |
6. Documento Types and Requisitos
Required Documentos
| Documento Type | Description | Expiration Required | Validation |
|---|---|---|---|
| ARL | Occupational risk insurance (Aseguradora de Riesgos Laborales) | Yes | Must be valid, from recognized insurer |
| EPS | Health insurance (Entidad Promotora de Salud) | Yes | Must be valid, from recognized provider |
| RUT | Tax registration (Registro Único Tributario) | Yes | Must match company tax ID |
| Experience Certificate | Proof of experience in service type | Yes | From previous clients or industry associations |
| Chamber of Commerce | Business registration certificate | Yes | From local chamber |
| Work Samples | Photos or reports of previous work | No | Quality assessment |
Documento Sub-Documento
| Field | Type | Description |
|---|---|---|
type | Enum | ARL, EPS, RUT, EXPERIENCE, CHAMBER, WORK_SAMPLE, OTHER |
fileUrl | String | Azure Blob URL |
fileName | String | Original file name |
uploadDate | Date | When uploaded |
expirationDate | Date | When expires (if applicable) |
Estado | Enum | Pendiente, APPROVED, REJECTED, EXPIRED |
validatedBy | ObjectId | Agent who validated |
validationDate | Date | When validated |
rejectionReason | String | Reason if rejected |
Reference: algesta-ms-provider-nestjs/src/domain/entities/Documento.entity.ts
7. Documento Validation Rules
File Validation
- File Type: PDF, JPG, JPEG, PNG only
- File Size: Maximum 5MB per file
- File Name: Sanitized to prevent security issues
- Virus Scan: Files scanned before storage (if configured)
Content Validation (Manual by Agent)
- Legibility: Documento text clearly readable
- Completoness: All required information visible
- Authenticity: Documento appears genuine (watermarks, logos, signatures)
- Expiration Date: Date is in the future (for Documentos requiring expiration)
- Name Match: Company name matches provider registration
- Tax ID Match: Tax ID matches provider NIT (for RUT)
Automated Validation
- Expiration Check: Daily job checks for expired or expiring Documentos
- Eligibility Recalculation: After Document validation or expiration
- 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étrica | Calculation | Update Frequency | Use Case |
|---|---|---|---|
| Completion Rate | (Orders Completod / Orders Assigned) × 100% | After each order | Agent selection decision |
| On-Time Rate | (Orders Delivered On Time / Orders Completod) × 100% | After each order | Reliability indicator |
| Average Client Rating | Sum(Client Ratings) / Count(Ratings) | After client approval | Quality indicator |
| Average Agent Rating | Sum(Agent Ratings) / Count(Ratings) | After agent review | Quality indicator |
| Rejection Rate | (Orders Requiring Rework / Orders Completod) × 100% | After each order | Quality indicator |
| Response Time | Average time from auction publication to offer submission | After offer submission | Responsiveness indicator |
| Days Since Last Activity | Current Date - Last Order Completion Date | Daily | Engagement 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
| Endpoint | Método | Description | Actor | Sprint |
|---|---|---|---|---|
/api/providers/register | POST | Register new provider | Provider | S3 |
/api/providers | GET | List all providers with filters | Agent | S3 |
/api/providers/:id | GET | Get provider details | Agent/Provider | S3 |
/api/providers/:id | PUT | Update provider info | Provider | S3 |
/api/providers/:id/Documentos | POST | Upload Documento | Provider | S3 |
/api/providers/:id/Documentos/:docId | GET | Get Documento | Agent/Provider | S3 |
/api/providers/:id/Documentos/:docId | DELETE | Delete Documento | Provider | S3 |
/api/providers/:id/Documentos/:docId/validate | POST | Validate Documento | Agent | S4 |
/api/providers/:id/eligibility | GET | Check eligibility for order | System | S4 |
/api/providers/:id/performance | GET | Get performance Métricas | Agent | S5 |
/api/providers/:id/orders | GET | Get order history | Agent | S5 |
/api/providers/:id/suspend | POST | Suspend provider | Agent | S7 |
/api/providers/:id/reactivate | POST | Reactivate provider | Agent | S7 |
/api/providers/expiring-Documentos | GET | List providers with expiring docs | Agent | S4 |
/api/providers/:id/rating | POST | Submit rating | Client/Agent | S5 |
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
-
Orders Service:
- Provider assignment after auction selection
- Order execution tracking
- Performance Métricas updates
-
Auctions Service:
- Eligibility validation before offer submission
- Provider performance visible in offers
-
Notifications Service:
- Registration confirmation
- Document validation notifications
- Expiration alerts
- Performance feedback
External Integration
- Azure Blob Storage: Documento storage
- Email Service: Notifications and alerts
- 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:
-
Provider Registration:
- Action: Provider submits registration form
- Expected: Account created with Estado Pendiente, confirmation email sent
- Result: ✅ Validated
-
Documento Upload:
- Action: Provider uploads ARL, EPS, RUT Documentos
- Expected: Files uploaded to Azure Blob, URLs stored in provider profile
- Result: ✅ Validated
-
Documento Validation by Agent:
- Action: Agent approves/rejects Documentos
- Expected: Documento Estado updated, provider notified
- Result: ✅ Validated
-
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
Related Funcionalidades
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