448 lines
15 KiB
Markdown
448 lines
15 KiB
Markdown
# 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. |