FSA CSA Assesment plans

This commit is contained in:
Abdul Kholik Sobary 2025-07-08 13:02:14 +07:00
parent 90911b8fca
commit 5f1b9cc011
1 changed files with 448 additions and 0 deletions

View File

@ -0,0 +1,448 @@
# 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.