# 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 ```prisma 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 ```prisma 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 ```prisma 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 ```prisma 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 ```prisma 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 ```prisma 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 ```prisma 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 ```prisma // Tambahan di model Plot model Plot { // ... existing fields assessments PlotAssessment[] // New relation } ``` ### 5.2 Relasi dengan Model Farmer ```prisma // 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.