roadmap/plans/fsa-csa-assessment-implemen...

15 KiB

Rencana Implementasi Sistem Assessment FSA/CSA

Tanggal: 8 Juli 2025
Versi: 1.0
Status: Draft untuk Diskusi

1. Latar Belakang

1.1 Kebutuhan Assessment Plot

Setiap plot dalam sistem Happy Farmer perlu dilakukan assessment Farm Sustainability Assessment (FSA) dan Climate Smart Agriculture (CSA) untuk:

  • Mengukur tingkat implementasi praktik pertanian berkelanjutan
  • Mengevaluasi adopsi teknologi climate smart agriculture
  • Memberikan rekomendasi peningkatan praktik pertanian
  • Monitoring dan evaluasi program pembinaan petani

1.2 Scope Assessment

Assessment mencakup praktik-praktik berikut:

  • Climate Smart Agriculture: Implementasi teknologi dan praktik pertanian cerdas iklim
  • Agroforestry: Implementasi sistem agroforestri
  • Organic Inputs: Penggunaan kompos, mulch, dan input organik lainnya
  • Natural Pest Management: Implementasi Pestisida Nabati (Pesnab)
  • Sustainable Practices: Live poles, cover crops, intercropping
  • Environmental Conservation: Praktik tanpa bakar, konservasi tanah dan air
  • Dan lainnya: Total 100+ pertanyaan assessment

2. Analisis Kebutuhan Sistem

2.1 Karakteristik Assessment

  • Volume Pertanyaan: 100+ pertanyaan per assessment
  • Frekuensi: Assessment berkala per plot (seasonal/annual)
  • Kompleksitas: Multiple question types (boolean, scale, multiple choice, text)
  • Kategorisasi: Pertanyaan dikelompokkan berdasarkan praktik
  • Scoring: Sistem penilaian otomatis dengan bobot berbeda
  • Progress Tracking: Kemampuan menyimpan progress assessment
  • Historical Data: Tracking perubahan/peningkatan dari waktu ke waktu

2.2 Stakeholder dan Use Cases

  • Penyuluh/Admin: Membuat template assessment, menganalisis hasil
  • Enumerator: Melakukan assessment di lapangan
  • Petani: Melihat hasil dan rekomendasi assessment
  • Management: Dashboard dan laporan agregat

3. Desain Arsitektur Model

3.1 Model Baru yang Dibutuhkan

3.1.1 AssessmentTemplate

model AssessmentTemplate {
    id              String   @id @default(cuid())
    name            String   // "FSA Template 2025", "CSA Baseline Assessment"
    description     String?
    version         String   // "1.0", "2.1"
    category        String   // "FSA", "CSA", "Combined"
    totalQuestions  Int      // Total number of questions
    maxScore        Decimal  // Maximum possible score
    isActive        Boolean  @default(true)
    createdBy       String?  // Admin who created
    validFrom       DateTime
    validUntil      DateTime?
    
    // Relations
    categories      AssessmentCategory[]
    assessments     PlotAssessment[]
    
    @@index([category])
    @@index([isActive])
    @@index([validFrom, validUntil])
    @@map("assessment_templates")
}

3.1.2 AssessmentCategory

model AssessmentCategory {
    id              String   @id @default(cuid())
    templateId      String
    name            String   // "Climate Smart Agriculture", "Agroforestry"
    description     String?
    weight          Decimal  // Weight for scoring (percentage)
    orderIndex      Int      // Display order
    
    // Relations
    template        AssessmentTemplate @relation(fields: [templateId], references: [id])
    questions       AssessmentQuestion[]
    
    @@index([templateId])
    @@index([orderIndex])
    @@map("assessment_categories")
}

3.1.3 AssessmentQuestion

model AssessmentQuestion {
    id              String   @id @default(cuid())
    categoryId      String
    questionText    String   // The actual question
    questionTextEn  String?  // English version
    questionType    QuestionType // BOOLEAN, SCALE, MULTIPLE_CHOICE, TEXT, NUMERIC
    options         String[] // For multiple choice
    minValue        Decimal? // For scale/numeric
    maxValue        Decimal? // For scale/numeric
    weight          Decimal  // Question weight for scoring
    orderIndex      Int      // Order within category
    isRequired      Boolean  @default(true)
    helpText        String?  // Additional guidance
    
    // Relations
    category        AssessmentCategory @relation(fields: [categoryId], references: [id])
    responses       AssessmentResponse[]
    
    @@index([categoryId])
    @@index([orderIndex])
    @@map("assessment_questions")
}

3.1.4 PlotAssessment

model PlotAssessment {
    id              String   @id @default(cuid())
    assessmentCode  String   @unique // "FSA-2025-001"
    plotId          String
    templateId      String
    farmerId        String   // Who owns the plot
    
    // Assessment execution
    conductedBy     String   // Enumerator/Admin ID
    conductedAt     DateTime
    startedAt       DateTime @default(now())
    completedAt     DateTime?
    
    // Progress and status
    status          AssessmentStatus @default(IN_PROGRESS)
    progress        Decimal @default(0) // Percentage completed
    totalQuestions  Int
    answeredQuestions Int @default(0)
    
    // Scoring
    totalScore      Decimal? // Final score
    maxScore        Decimal  // Maximum possible score
    scorePercentage Decimal? // Score as percentage
    
    // Categorized scores
    categoryScores  Json?    // {"climate_smart": 85, "agroforestry": 70}
    
    // Assessment metadata
    season          String?  // "Wet Season 2025"
    weatherConditions String?
    assessmentNotes String?
    
    // Photo documentation
    photoUrls       String[] // Photos taken during assessment
    gpsCoordinates  Json?    // Where assessment was conducted
    
    createdAt       DateTime @default(now())
    updatedAt       DateTime @updatedAt
    
    // Relations
    plot            Plot @relation(fields: [plotId], references: [id])
    template        AssessmentTemplate @relation(fields: [templateId], references: [id])
    farmer          Farmer @relation(fields: [farmerId], references: [id])
    responses       AssessmentResponse[]
    recommendations AssessmentRecommendation[]
    
    @@index([plotId])
    @@index([farmerId])
    @@index([templateId])
    @@index([conductedAt])
    @@index([status])
    @@index([scorePercentage])
    @@map("plot_assessments")
}

3.1.5 AssessmentResponse

model AssessmentResponse {
    id              String   @id @default(cuid())
    assessmentId    String
    questionId      String
    
    // Response data (flexible to accommodate different question types)
    booleanValue    Boolean?
    numericValue    Decimal?
    textValue       String?
    selectedOptions String[] // For multiple choice
    
    // Scoring
    points          Decimal @default(0) // Points earned for this response
    maxPoints       Decimal             // Maximum points possible
    
    // Metadata
    answeredAt      DateTime @default(now())
    notes           String?  // Additional notes from enumerator
    
    // Relations
    assessment      PlotAssessment @relation(fields: [assessmentId], references: [id])
    question        AssessmentQuestion @relation(fields: [questionId], references: [id])
    
    @@unique([assessmentId, questionId]) // One response per question per assessment
    @@index([assessmentId])
    @@index([questionId])
    @@map("assessment_responses")
}

3.1.6 AssessmentRecommendation

model AssessmentRecommendation {
    id              String   @id @default(cuid())
    assessmentId    String
    category        String   // "Agroforestry", "Composting"
    priority        Priority // HIGH, MEDIUM, LOW
    
    title           String   // "Implementasi Sistem Agroforestri"
    description     String   // Detailed recommendation
    actionItems     String[] // Specific action steps
    
    // Implementation support
    trainingNeeded  Boolean @default(false)
    trainingTopics  String[] // Related training topics
    estimatedCost   Decimal? // Estimated implementation cost
    timeframe       String?  // "1-3 months", "Next season"
    
    // Status tracking
    status          RecommendationStatus @default(PENDING)
    implementedAt   DateTime?
    implementedBy   String?  // Farmer who implemented
    
    createdAt       DateTime @default(now())
    updatedAt       DateTime @updatedAt
    
    // Relations
    assessment      PlotAssessment @relation(fields: [assessmentId], references: [id])
    
    @@index([assessmentId])
    @@index([category])
    @@index([priority])
    @@index([status])
    @@map("assessment_recommendations")
}

3.2 Enums yang Dibutuhkan

enum QuestionType {
    BOOLEAN         // Yes/No questions
    SCALE           // 1-5 scale, 1-10 scale
    MULTIPLE_CHOICE // Select from options
    TEXT            // Open text response
    NUMERIC         // Numeric input
}

enum AssessmentStatus {
    DRAFT           // Template being prepared
    IN_PROGRESS     // Assessment started but not completed
    COMPLETED       // Assessment finished
    REVIEWED        // Assessment reviewed by supervisor
    ARCHIVED        // Old assessment archived
}

enum RecommendationStatus {
    PENDING         // Recommendation given
    IN_PROGRESS     // Farmer implementing
    COMPLETED       // Successfully implemented
    DEFERRED        // Implementation postponed
    NOT_APPLICABLE  // No longer relevant
}

4. Kategori Assessment Detail

4.1 Climate Smart Agriculture (CSA)

  • Teknologi Adaptasi Iklim: Penggunaan varietas tahan kekeringan/banjir
  • Sistem Irigasi Efisien: Drip irrigation, water harvesting
  • Weather-based Farming: Penggunaan informasi cuaca untuk planning
  • Carbon Sequestration: Praktik yang meningkatkan penyimpanan karbon

4.2 Agroforestry

  • Tree Integration: Jenis dan jumlah pohon dalam sistem pertanian
  • Spatial Arrangement: Pola penanaman pohon dan tanaman
  • Species Selection: Pemilihan spesies pohon yang sesuai
  • Management Practices: Pemeliharaan sistem agroforestri

4.3 Organic Inputs & Soil Health

  • Composting: Produksi dan penggunaan kompos
  • Mulching: Aplikasi mulch organic
  • Green Manure: Penggunaan pupuk hijau
  • Soil Testing: Regularity of soil health monitoring

4.4 Natural Pest Management (Pesnab)

  • Botanical Pesticides: Penggunaan pestisida nabati
  • Biological Control: Predator/parasitoid management
  • Trap Crops: Penggunaan tanaman perangkap
  • IPM Implementation: Integrated Pest Management practices

4.5 Sustainable Practices

  • Live Poles: Penggunaan tiang hidup
  • Cover Crops: Implementasi cover crops
  • Intercropping: Sistem tumpang sari
  • Crop Rotation: Rotasi tanaman

4.6 Environmental Conservation

  • No Burning: Praktik tanpa pembakaran
  • Water Conservation: Konservasi air dan tanah
  • Biodiversity: Pemeliharaan keanekaragaman hayati
  • Waste Management: Pengelolaan limbah pertanian

5. Integrasi dengan Sistem Existing

5.1 Relasi dengan Model Plot

// Tambahan di model Plot
model Plot {
    // ... existing fields
    assessments     PlotAssessment[] // New relation
}

5.2 Relasi dengan Model Farmer

// Tambahan di model Farmer
model Farmer {
    // ... existing fields
    plotAssessments PlotAssessment[] // New relation
}

5.3 Integrasi dengan Training System

  • Assessment results trigger training recommendations
  • Training completion updates assessment scores
  • Link antara assessment gaps dan training needs

5.4 Integrasi dengan Financial Records

  • Track implementation costs for recommendations
  • ROI calculation for sustainable practices
  • Cost-benefit analysis

6. Implementation Roadmap

6.1 Phase 1: Core Assessment System (Month 1-2)

  • Create basic assessment models
  • Implement template management
  • Basic question types (Boolean, Scale)
  • Simple scoring system

6.2 Phase 2: Advanced Features (Month 3-4)

  • Complex question types (Multiple choice, Text)
  • Progress saving and resume
  • Photo documentation
  • Basic recommendations engine

6.3 Phase 3: Analytics & Integration (Month 5-6)

  • Historical trend analysis
  • Training system integration
  • Advanced recommendation algorithms
  • Dashboard and reporting

6.4 Phase 4: Mobile & Optimization (Month 7-8)

  • Mobile app optimization
  • Offline assessment capability
  • Performance optimization
  • Advanced analytics

7. Considerations & Discussion Points

7.1 Technical Considerations

  • Performance: 100+ questions per assessment, multiple farmers
  • Storage: Photo documentation storage strategy
  • Offline Capability: Assessment in areas with poor connectivity
  • Data Migration: Handling template versions and historical data

7.2 Business Logic Considerations

  • Scoring Algorithm: How to weight different practices fairly
  • Recommendation Engine: Automated vs manual recommendations
  • Validation Rules: Ensuring data quality and consistency
  • Access Control: Who can view/edit assessment results

7.3 User Experience Considerations

  • Assessment Duration: Breaking long assessments into manageable sections
  • Language Support: Multilingual support for questions
  • Mobile Interface: Touch-friendly assessment interface
  • Progress Indicators: Clear indication of completion status

7.4 Integration Considerations

  • Training System: How assessment results trigger training
  • Financial System: Tracking implementation costs
  • Reporting System: Management dashboards and analytics
  • External Systems: Integration with government reporting

8. Risk Assessment

8.1 Technical Risks

  • High: Complex scoring algorithms may have bugs
  • Medium: Performance issues with large datasets
  • Low: Data migration challenges

8.2 Business Risks

  • High: Assessment too long/complex for field use
  • Medium: Recommendations not actionable
  • Low: Integration disrupts existing workflows

8.3 Mitigation Strategies

  • Prototype with small user group
  • Phased rollout with feedback collection
  • Comprehensive testing of scoring algorithms
  • Training for enumerators

9. Success Metrics

9.1 System Metrics

  • Assessment completion rate > 90%
  • Average assessment time < 45 minutes
  • Data quality score > 95%
  • System performance < 3 seconds response time

9.2 Business Metrics

  • Farmer engagement with recommendations > 70%
  • Improvement in assessment scores over time
  • Training completion rate for recommended topics
  • ROI on implemented recommendations

10. Next Steps

10.1 Immediate Actions

  1. Validate Requirements: Review with subject matter experts
  2. Prototype Core Models: Build basic assessment structure
  3. Design Sample Questions: Create representative question set
  4. Test Scoring Logic: Validate scoring algorithms

10.2 Stakeholder Reviews

  • Technical team review of data models
  • Field team review of assessment workflow
  • Business team review of scoring methodology
  • Farmer representative feedback on questions

10.3 Decision Points

  • Finalize question categorization and weighting
  • Determine assessment frequency and triggers
  • Define integration points with existing systems
  • Establish data governance and access policies

Catatan: Dokumen ini merupakan draft awal yang memerlukan diskusi lebih lanjut dengan tim teknis dan business untuk finalisasi requirements dan approach implementasi.