FSA CSA Assesment plans
This commit is contained in:
parent
90911b8fca
commit
5f1b9cc011
|
|
@ -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.
|
||||
Loading…
Reference in New Issue