Assessment Monitoring (Baholash va Monitoring)
Ushbu bo'limda bolaning rivojlanish darajasini (milestone-lar bo'yicha) aniqlash va AI tahlillarini olish jarayoni tushuntiriladi.
Frontendda Baholash Ketma-ketligi
- Dashboardni Yuklash: Bolaning umumiy holati va rivojlanish kategoriyalarini olish.
- Kategoriyani Tanlash: Foydalanuvchi biror kategoriyani (masalan: Nutq) tanlaydi.
- Savollarni Olish: Tanlangan kategoriya va bolaning yoshiga mos savollarni yuklash.
- Testni Topshirish: Javoblarni yuborish va AI tahlilini qabul qilish.
1. Monitoring Dashboard
Bolaning joriy rivojlanish holati va barcha kategoriyalar bo'yicha foizlarni olish.
- URL:
/client/assessments/dashboard - Metod:
GET - Headers:
Authorization: Bearer {access_token}
Response
{
"child": { "name": "Ali", "ageInMonths": 24 },
"overallScore": 75,
"lastAssessmentDate": "2024-03-20T10:00:00Z",
"categories": [
{
"id": "uuid-category-1",
"slug": "speech",
"title": "Nutq rivojlanishi",
"icon": "headset",
"percentage": 85,
"status": "good"
},
{
"id": "uuid-category-2",
"slug": "motor",
"title": "Harakat (Motorika)",
"icon": "directions_run",
"percentage": 0,
"status": null
}
],
"historyChart": [
{
"month": "Yan",
"categories": [{ "categoryId": "...", "label": "Nutq", "score": 80 }]
}
]
}
[!TIP] Dashboard logikasi: Agar kategoriyada
percentage0 bo'lsa, demak bu kategoriya bo'yicha hali test topshirilmagan.historyChartma'lumotlari yordamida frontendda dinamika grafigini chizish mumkin.
2. Savollarni olish
Tanlangan kategoriya bo'yicha bolaning yoshiga moslashtirilgan savollarni yuklash.
- URL:
/client/assessments/questions/{categoryId} - Metod:
GET
Response
[
{
"id": "uuid-question-1",
"questionText": "Farzandingiz 2-3 so'zli gaplarni ayta oladimi?",
"options": [
{ "label": "Ha", "score": 2 },
{ "label": "Ba'zan", "score": 1 },
{ "label": "Yo'q", "score": 0 }
]
}
]
3. Test natijasini topshirish
Foydalanuvchi tanlagan javoblarni (ballarni) yuborish.
- URL:
/client/assessments/submit - Metod:
POST
Request Body
{
"categoryId": "uuid-category-1",
"answers": [
{ "questionId": "uuid-question-1", "score": 2 },
{ "questionId": "uuid-question-2", "score": 1 }
]
}
Response
{
"id": "uuid-assessment-result",
"scorePercentage": 85,
"status": "good",
"aiInsights": "Farzandingizning nutq ko'nikmalari yoshiga mos ravishda rivojlanmoqda...",
"recommendations": [
"Ko'proq rangli kitoblar o'qib bering",
"Yangi so'zlarni o'yin orqali o'rgating"
]
}
[!IMPORTANT] Natija statuslari:
statusmaydoni AssessmentStatus Enum qiymatlaridan birini qabul qiladi.aiInsightsbu AI tomonidan berilgan umumiy tahlil,recommendationsesa amaliy tavsiyalar ro'yxatidir.
4. Baholash Natijalari (Interfeyslar)
Baholash yakunlangandan keyin qaytadigan ma'lumotlarni render qilish uchun interfeyslar:
Interfeys:
export interface AssessmentResult {
id: string;
scorePercentage: number; // 0-100 oralig'ida
status: 'good' | 'average' | 'poor';
aiInsights: string; // AI tomonidan berilgan tahliliy matn
recommendations: string[]; // Amaliy tavsiyalar ro'yxati
answers: DetailedAnswer[]; // Foydalanuvchi bergan javoblar tahlili
}
export interface DetailedAnswer {
questionId: string;
questionText: string;
score: number;
label: string; // "Ha", "Ba'zan", "Yo'q" matni
}
#### JSON Sample:
```json
{
"id": "uuid-result",
"scorePercentage": 85,
"status": "good",
"aiInsights": "...",
"recommendations": ["..."],
"answers": [
{
"questionId": "uuid-q1",
"questionText": "Farzandingiz...",
"score": 2,
"label": "Ha"
}
]
}
Frontend uchun tavsiya:
scorePercentage: Uni "Progress bar" yoki "Radial chart" ko'rinishida ko'rsatish maqsadga muvofiq.aiInsights: Ushbu matnni "Ekspert xulosasi" rukni ostida ko'rsating.recommendations: Har bir tavsiyani ro'yxat ko'rinishida chiqaring. Foydalanuvchi ushbu tavsiyalar asosida Daily Activities bo'limiga o'tishi tavsiya etiladi.
5. Testlar tarixi
Bolaning barcha topshirgan testlari ro'yxatini ko'rish (ixtiyoriy).
- URL:
/client/assessments/history - Metod:
GET - Query Params:
categoryId(filter uchun, ixtiyoriy)
