Loyiha va texnik arxitektura
Platforma ataylab sodda stackda qurilgan: framework yoʻq, tashqi AI xizmati yoʻq. Maqsad — maktab sharoitida ishonchli ishlaydigan va mahalliy jamoa qoʻllab-quvvatlay oladigan tizim.
Ekologik savodxonlikni erta yoshdan
1–4-sinf oʻquvchilarida tabiatga munosabat va oddiy tadqiqot koʻnikmalarini shakllantirish. Har bir modul faqat nazariya emas — real tajriba, kuzatuv va uy topshirigʻi bilan yakunlanadi.
Platforma oʻqituvchini almashtirmaydi. U dars materialini tayyorlaydi, javoblarni yigʻadi va tahlil qiladi — pedagogik qarorni esa oʻqituvchi qabul qiladi.
Kim uchun
1–4-sinf oʻquvchilari, ularning oʻqituvchilari va ota-onalari.
Qanday ritmda
Kuniga 15–20 daqiqa, haftasiga 3–5 mashgʻulot.
Kontent hajmi
6 modul, 3 video, 11 metodik material.
Maʼlumot xavfsizligi
Minimal yigʻish, tashqi xizmatlarga uzatish yoʻq.
Qatlamlar sxemasi
Uchta qatlam va bitta ochiq qoidalar bloki. AI mikroservisi oʻrniga — backend ichidagi tekshiriladigan funksiyalar.
AI oʻrniga nima ishlatilgan
Dastlabki arxitekturada alohida AI mikroservisi rejalashtirilgan edi.
Bu versiyada uning oʻrnini ochiq qoidalar jadvali egalladi:
match ifodasidagi toʻrtta shart va kalit soʻzlar boʻyicha
baholash. Aniqligi pastroq, ammo natija toʻliq tushuntiriladi va
oʻqituvchi uni tekshira oladi — bolalar bilan ishlashda bu muhimroq.
Nima, qayerda va nima uchun
Frontend
index.php, includes/header.php,
footer.php. Semantik teglar, <details> accordion.
assets/css/ — 13 ta fayl. Custom properties (tokenlar),
Grid, Flexbox, clamp(), aspect-ratio,
prefers-reduced-motion.
assets/js/main.js — header skroll, mobil menyu,
IntersectionObserver bilan paydo boʻlish, video lazy-load,
test dvigateli, AJAX orqali baholash.
includes/functions.php ichidagi icon() —
emoji oʻrniga chiziqli ikonkalar, inline chiqariladi.
videolar.php — bosilganda iframe yaratiladi,
youtube-nocookie.com domenidan.
Backend
match, str_starts_with,
nomlangan argumentlar. Protsedura uslubi — framework yoʻq.
database/schema.sql — 12 ta jadval: modullar, darslar,
topshiriqlar, javoblar, nishonlar, materiallar, sozlamalar.
config/db.php va barcha soʻrovlar — SQL inʼyeksiyadan himoya.
Baza boʻlmasa sayt demo maʼlumot bilan ishlayveradi.
httponly,
samesite=Lax, HTTPS'da secure.
login_attempts jadvalida qayd etiladi.
Infratuzilma
uploads/ — xizmat papkalarini yopish, PHP
bajarilishini oʻchirish, kesh va xavfsizlik sarlavhalari.
deploy/nginx.conf.example — xuddi shu qoidalar PHP-FPM uchun.
.gitignore — maxfiy config va yuklangan fayllar repoga kirmaydi.
config/config.local.php — muhitga qarab bitta fayl oʻzgaradi.
Yoʻriqnoma: DEPLOY.md.
certbot orqali HTTPS — bolalar maʼlumotlari uchun majburiy.
Pedagogik bloklar texnik qismda qayerda
modules, lessons, tasks + admin CMSchild_responsesnext_step_rule() qoidalar jadvalibadges, child_profile + bildirishnoma xizmatimaterials jadvalidanTexnik darajadagi choralar
Maʼlumotlar shifrlash
Transit — HTTPS/TLS (Let's Encrypt). At rest — baza darajasida shifrlash va muntazam backup. Backup fayllari alohida saqlanadi.
SQL inʼyeksiya va XSS
Barcha soʻrovlar PDO prepared statements orqali; foydalanuvchi kiritgan qiymat hech qachon SQL matniga qoʻshilmaydi.
Chiqishda e() yordamchisi — htmlspecialchars
ENT_QUOTES bilan. Har bir sahifada istisnosiz.
CSRF himoyasi
Har bir POST forma va AJAX soʻrovi sessiyadagi token bilan
imzolanadi. Tekshiruv hash_equals() orqali — vaqt
hujumlariga qarshi.
Fayl yuklash
Fayl turi finfo imzosi boʻyicha aniqlanadi, kengaytmaga
ishonilmaydi. uploads/ ichida .htaccess PHP
bajarilishini butunlay oʻchiradi.
Bolalar maʼlumotlari
Minimal yigʻish tamoyili. Bolaning javoblari tashqi xizmatlarga uzatilmaydi. Ota-ona istalgan vaqtda hisobni va unga bogʻliq barcha maʼlumotni oʻchirishni talab qila oladi.