KidApp DocumentationKidApp Documentation
Bosh sahifa
API Qo'llanma
Qo'llanma
GitHub
Bosh sahifa
API Qo'llanma
Qo'llanma
GitHub
  • API Dokumentatsiya

    • API Ko'rinishi
    • Auth API (Autentifikatsiya)
    • Profile API (Profil boshqaruvi)
    • Child API (Bolalar boshqaruvi)
    • Growth Monitoring API (O'sish monitoringi)
    • Assessment Monitoring (Baholash va Monitoring)
    • Daily Activities (Kunlik Mashg'ulotlar)
    • Health API
    • Vaccination API
    • Vitamin API
    • Reminder API
    • Chat API
    • Enumlar (Global qiymatlar)

Daily Activities (Kunlik Mashg'ulotlar)

Ushbu bo'limda bolaning yoshiga va rivojlanish darajasiga mos ravishda tavsiya etiladigan kunlik mashg'ulotlar (ertaklar, o'yinlar, mashqlar) tushuntiriladi.

Mashg'ulotlar Oqimi (Flow)

  1. Dashboard/Plan: Bugungi kun uchun tavsiya etilgan mashg'ulotlar ro'yxatini olish.
  2. Kategoriyalar: Mashg'ulotlarni turli yo'nalishlar (Nutq, Motorika va h.k.) bo'yicha filterlash.
  3. Tafsilotlar (Details): Mashg'ulot mazmunini (qadamlar yoki o'yin ma'lumotlari) yuklash.
  4. Progress: Mashg'ulotni boshlash va yakunlash holatlarini yuborish.

1. Kunlik reja (Dashboard)

Bolaning bugungi kunlik mashg'ulotlar rejasini olish.

  • URL: /client/activities/dashboard
  • Metod: GET
  • Headers: Authorization: Bearer {access_token}

Response

[
  {
    "id": "uuid-activity-1",
    "title": "Ona tili darsi",
    "description": "Yangi so'zlarni o'rganamiz",
    "durationMinutes": 15,
    "type": "instructional",
    "difficulty": "easy",
    "status": "not_started"
  }
]

2. Mashg'ulot toifalari

Mavjud barcha mashg'ulot kategoriyalari ro'yxatini olish.

  • URL: /client/activities/categories
  • Metod: GET

Response

[
  {
    "id": "uuid-cat-1",
    "slug": "speech-development",
    "title": "Nutq rivojlanishi",
    "icon": "headset"
  }
]

3. Barcha mashg'ulotlar (Filtr bilan)

Tizimdagi barcha mashg'ulotlar ro'yxatini olish. Kategoriyalar bo'yicha filterlash imkoniyati bilan.

  • URL: /client/activities/all
  • Metod: GET
  • Query Params:
    • categoryId (Optional): Ma'lum bir toifadagi mashg'ulotlarni ko'rish uchun.

Response

[
  {
    "id": "uuid-1",
    "title": "...",
    "categoryTitle": "Nutq rivojlanishi",
    "status": "not_started"
  }
]

4. Mashg'ulot tafsilotlari (Content va Interfeyslar)

Mashg'ulotlarni to'g'ri render qilish uchun quyidagi TypeScript interfeyslaridan foydalanish tavsiya etiladi.

  • URL: /client/activities/details/{activityId}
  • Metod: GET
  • Query Params:
    • activityId (Required): Mashg'ulot ID si.

Umumiy Interfeyslar

export type ActivityDifficulty = 'easy' | 'medium' | 'hard';
export type ActivityType = 'instructional' | 'interactive';

export interface ActivityDetails {
  id: string;
  title: string;
  description: string;
  durationMinutes: number;
  type: ActivityType;
  difficulty: ActivityDifficulty;
  content: InstructionalContent | InteractiveContent;
  status: 'not_started' | 'started' | 'completed';
}

A. Instructional (Ko'rsatmali mashg'ulot)

Ushbu turdagi mashg'ulotlar odatda oddiy matnli qadamlar, rasmlar va audiolardan iborat bo'ladi.

Interfeys:

export interface InstructionalContent {
  steps: string[];              // Bajarilishi kerak bo'lgan qadamlar
  checklist?: string[];         // Tekshirish uchun punktlar
  hasTimer?: boolean;           // Taymer ko'rsatish kerakmi?
  image?: string;               // Asosiy rasm (Asset ID)
  audio?: string;               // Ovozli yo'riqnoma (Asset ID)
}

JSON Sample:

{
  "steps": ["Mashqni boshlang", "Qo'lingizni ko'taring"],
  "checklist": ["Suv ichildimi?", "Tayyormisiz?"],
  "image": "uuid-asset-id"
}

Frontend uchun tavsiya:

  • steps massivini v-for yoki map() orqali tartiblangan ro'yxat (ol) ko'rinishida chiqaring.
  • Har bir qadam yonida "Bajarildi" chekboksini qo'shish foydali bo'ladi.

B. Interactive (O'yin/Test)

Ushbu turdagi mashg'ulotlar interaktiv o'yin yoki test ko'rinishida bo'ladi.

Interfeys:

export type InteractiveGameType = 'quiz' | 'true_false' | 'matching' | 'sorting';

export interface InteractiveContent {
  gameType: InteractiveGameType;
  rounds: InteractiveRound[];
}

export interface InteractiveRound {
  question: string;         // Savol matni
  options: GameOption[];    // Javob variantlari
  answer: string | number;  // To'g'ri javobning 'value'si
  hint?: string;            // Yordamchi matn yoki rasm izohi
  media?: string;           // Rasm yoki video (Asset ID)
}

export interface GameOption {
  label: string;            // Variant nomi (masalan: "Olma")
  value: string | number;   // Variant qiymati (masalan: "apple")
  image?: string;           // Variant uchun rasm (Asset ID)
}

JSON Sample:

{
  "gameType": "quiz",
  "rounds": [
    {
      "question": "Qaysi meva qizil rangda?",
      "options": [
        { "label": "Olma", "value": "apple", "image": "uuid-asset" },
        { "label": "Banan", "value": "banana" }
      ],
      "answer": "apple"
    }
  ]
}

Frontend uchun tavsiya:

  • gameType ga qarab turli xil komponentlarni (QuizComponent, MatchComponent) yuklang.
  • Har bir round yakunlangandan keyin foydalanuvchiga to'g'ri/noto'g'ri ekanligini bildiring.
  • Barcha rounds tugatilgandan keyin complete API orqali natijani yuboring.

[!TIP] Media Assetlarni yuklash: content ichidagi image yoki audio kabi ID-larni frontendda ko'rsatish uchun quyidagi endpointdan foydalaning:

GET /api/client/activities/files/{fileId}

Misol: <img src="https://api.kidapp.uz/api/client/activities/files/uuid-asset-id" />


5. Progress (Bajarilish holati)

Mashg'ulot boshlanganda va tugaganda tizimga xabar berish.

Mashg'ulotni boshlash

  • URL: /client/activities/start/{activityId}
  • Metod: POST

Mashg'ulotni yakunlash

  • URL: /client/activities/complete/{activityId}
  • Metod: POST

Request Body (Ixtiyoriy):

{
  "score": 100,
  "timeSpentSeconds": 120
}

Mashg'ulotlar uchun Enumlar

  • ActivityType: Instructional vs Interactive
  • Difficulty: Easy, Medium, Hard
  • InteractiveGameType: Quiz, Matching...
  • ProgressStatus: Started, Completed
Ushbu sahifani tahrirlash
Oxirgi yangilanish: 27/03/26, 00:22
Mualliflar: Islom1999
Prev
Assessment Monitoring (Baholash va Monitoring)
Next
Health API