Ajoyib! Avvalgi tushuntirishlarga asoslanib, "SmartStarosta" loyihasining boshlanishidan tugashigacha bo'lgan to'liq texnik topshirig'ini (Technical Specification) quyida keltiraman. Bu hujjat loyihani amalga oshirishda dasturchilar jamoasi uchun yo'l xaritasi vazifasini o'taydi.
---
## TEXNIK TOPSHIRIQ (TT)
### Loyiha nomi: "SmartStarosta" - Universitet Boshqaruv Tizimi
**Versiya:** 1.0
**Yaratilgan sana:** 2023-10-27
**Muallif:** [Sizning Ismingiz/Jamoa nomi]
**Tasdiqlandi:** [Dekanat vakili, IT bo'limi rahbari]
---
### MUNDARIJA
1. KIRISH
1.1. Loyiha maqsadi
1.2. Loyiha doirasi
1.3. Loyihadan tashqari
1.4. Ta'riflar va qisqartmalar
1.5. Hujjatlarga havolalar
2. UMUMIY TAVSIF
2.1. Mahsulot ko'rinishi
2.2. Foydalanuvchi xususiyatlari
2.3. Cheklovlar
2.4. Taxminlar
3. TIZIM ARXITEKTURASI
3.1. Umumiy arxitektura
3.2. Asosiy komponentlar
3.3. Ma'lumotlar oqimi
4. FUNKSIONAL TALABLAR
4.1. Super Admin Moduli
4.2. Dekan Moduli
4.3. O'qituvchi Moduli
4.4. Starosta Moduli
4.5. Talaba Moduli
4.6. Umumiy funksiyalar (Bildirishnomalar, Hisobotlar)
5. NOFUNKSIONAL TALABLAR
5.1. Ishlash qobiliyati (Performance)
5.2. Xavfsizlik (Security)
5.3. Foydalanish qulayligi (Usability/UX)
5.4. Ishonchlilik (Reliability)
5.5. Miqyoslilik (Scalability)
5.6. Texnik xizmat ko'rsatish (Maintainability)
5.7. Lokalizatsiya (Localization)
5.8. Mavjud infratuzilma bilan integratsiya
6. TEXNIK STAK (TECHNOLOGY STACK)
6.1. Backend
6.2. Frontend
6.3. Ma'lumotlar bazasi
6.4. Deployment va Server
6.5. Versiya nazorati
7. LOYIHANI AMALGA OSHIRISH BOSQICHLARI
7.1. 1-bosqich: Talablarni yig'ish va tahlil qilish
7.2. 2-bosqich: Dizayn va prototiplash
7.3. 3-bosqich: Dasturlash va ishlab chiqish
7.4. 4-bosqich: Testlash
7.5. 5-bosqich: Joylashtirish (Deployment)
7.6. 6-bosqich: O'qitish va qo'llab-quvvatlash
7.7. 7-bosqich: Texnik xizmat ko'rsatish va rivojlantirish
8. TESTLASH STRATEGIYASI
8.1. Unit testlar
8.2. Integratsiya testlari
8.3. Tizim testlari
8.4. Foydalanuvchi qabul testlari (UAT)
8.5. Xavfsizlik testlari
9. KELAJAKDAGI RIVOJLANISHLAR
10. QO'SHIMCHA ILKOSLAR
10.1. Ma'lumotlar bazasi strukturasi (Entity Relationship Diagram - ERD)
10.2. UI/UX Maketlari (Wireframes/Mockups)
---
### 1. KIRISH
**1.1. Loyiha maqsadi**
Ushbu loyihaning asosiy maqsadi universitetning 1-kurs talabalari davomati, uy vazifasi va xulq-atvorini boshqarish jarayonini raqamlashtirish va avtomatlashtirishdan iborat. Bu starosta, dekanat va o'qituvchilar o'rtasidagi ma'lumot almashinuvini tezlashtiradi, ma'muriy yukni kamaytiradi va ta'lim jarayonining shaffofligini oshiradi. Yangi dekan tomonidan qo'yilgan talablarga (har bir darsdan so'ng 80 daqiqa ichida davomat hisobotini taqdim etish va tushuntirish xatlarini yig'ish) to'liq javob berish.
**1.2. Loyiha doirasi**
Tizim quyidagi asosiy funksiyalarni qamrab oladi:
* Foydalanuvchilarni boshqarish (Super Admin, Dekan, O'qituvchi, Starosta, Talaba).
* Universitet tuzilmasini boshqarish (Fakultetlar, Kafedralar, Guruhlar, Fanlar, Auditoriyalar).
* Dars jadvallarini yaratish va boshqarish.
* Davomatni raqamli qayd etish va dekanatga real vaqtda yuborish.
* Uy vazifasini topshirish holatini qayd etish.
* Talabalarning xulq-atvorini qayd etish.
* Raqamli tushuntirish xatlarini qabul qilish va boshqarish.
* Avtomatik bildirishnomalar va ogohlantirishlar.
* Turli hisobotlarni yaratish va eksport qilish.
**1.3. Loyihadan tashqari**
Ushbu loyiha quyidagi funksiyalarni o'z ichiga olmaydi (kelajakdagi rivojlanishlar sifatida ko'rib chiqilishi mumkin):
* Baholash tizimi (Marks/Grades).
* O'quv materiallarini boshqarish tizimi (LMS - Learning Management System).
* Moliyaviy hisob-kitoblar.
* Kutubxona tizimi bilan integratsiya.
* O'quv rejalari va dasturlarini boshqarish.
**1.4. Ta'riflar va qisqartmalar**
* **TT:** Texnik Topsishg'i
* **API:** Application Programming Interface
* **UI/UX:** User Interface / User Experience
* **LMS:** Learning Management System
* **UAT:** User Acceptance Testing
* **Starosta:** Guruh rahbari (talabalar vakili)
* **Dekan:** Fakultet dekani
* **Para:** Bir dars juftligi (odatda 80 daqiqa)
* **P:** Present (Kelgan)
* **A:** Absent (Kelmadi)
* **L:** Late (Kech qoldi)
* **S:** Submitted (Topshirgan)
* **NS:** Not Submitted (Topshirmagan)
* **LS:** Late Submitted (Kechiktirib topshirgan)
**1.5. Hujjatlarga havolalar**
* [Universitet Nizomi]
* [Yangi Dekan talablari bo'yicha hujjatlar]
---
### 2. UMUMIY TAVSIF
**2.1. Mahsulot ko'rinishi**
"SmartStarosta" universitetda 1-kurs talabalari uchun davomat, uy vazifasi va xulq-atvorini samarali boshqarish uchun mo'ljallangan markazlashgan veb-platforma (kelajakda mobil ilova bilan). U starosta, dekanat, o'qituvchi va talaba o'rtasidagi ma'lumot almashinuvini soddalashtirib, vaqtni tejash va qaror qabul qilish jarayonlarini tezlashtirishga xizmat qiladi.
**2.2. Foydalanuvchi xususiyatlari**
* **Super Admin:** IT bo'limi xodimi, texnik bilimga ega. Tizimni to'liq boshqarish vakolatiga ega.
* **Dekan:** 1-kurslar bo'yicha mas'ul shaxs. Tezkor va aniq hisobotlarga, muammoli holatlar bo'yicha ogohlantirishlarga ehtiyoj sezadi.
* **O'qituvchi:** Ta'lim jarayoniga e'tibor qaratadi. O'z darslari uchun talabalarning umumiy ahvolini kuzatish imkoniyatiga ega bo'lishi kerak.
* **Starosta:** Guruhdagi eng faol va mas'uliyatli talaba. Smartfon yoki kompyuterdan foydalanishda malakali bo'lishi va tizimga ma'lumotlarni tez kiritishi kerak.
* **Talaba:** O'zining davomati, uy vazifasi va xulq-atvor holatini ko'rish, tushuntirish xati yuklash imkoniyatiga ega bo'lishi kerak.
**2.3. Cheklovlar**
* **Vaqt:** Loyihani qisqa muddatda (masalan, 3-4 oy ichida) ishga tushirish talabi.
* **Byudjet:** Cheklangan moliyaviy resurslar.
* **Infratuzilma:** Universitetning mavjud server resurslari yoki bulutli xizmatlardan foydalanish imkoniyatlari.
* **Til:** Tizim interfeysi to'liq o'zbek tilida bo'lishi shart.
* **Ma'lumotlar xavfsizligi:** Shaxsiy ma'lumotlarni himoya qilish bo'yicha O'zbekiston qonunchiligi talablariga rioya qilish.
* **Foydalanuvchi savodxonligi:** Foydalanuvchilarning (ayniqsa, starostalar) minimal darajadagi kompyuter/smartfon savodxonligi mavjud deb hisoblanadi.
**2.4. Taxminlar**
* Universitetda barqaror internet aloqasi mavjud.
* Foydalanuvchilar (starosta, o'qituvchi, dekan) tizimga kirish uchun shaxsiy yoki universitet tomonidan ta'minlangan qurilmalarga (kompyuter, smartfon, planshet) ega.
* Universitet rahbariyati va dekanat ushbu loyihani to'liq qo'llab-quvvatlaydi.
* Ma'lumotlar bazasiga kiritiladigan dastlabki ma'lumotlar (fakultetlar, guruhlar, talabalar ro'yxati, o'qituvchilar, fanlar) IT bo'limi tomonidan taqdim etiladi.
---
### 3. TIZIM ARXITEKTURASI
**3.1. Umumiy arxitektura**
Tizim uch qatlamli (3-tier) arxitekturaga ega bo'ladi:
* **Frontend (Mijoz tomoni):** Foydalanuvchi interfeysi, veb-brauzer yoki mobil ilova orqali ishlaydi.
* **Backend (Server tomoni):** Biznes mantig'ini o'z ichiga oladi, ma'lumotlar bazasi bilan o'zaro aloqada bo'ladi va API orqali frontendga ma'lumotlarni taqdim etadi.
* **Ma'lumotlar bazasi:** Barcha tizim ma'lumotlarini saqlaydi va boshqaradi.
**3.2. Asosiy komponentlar**
* **Foydalanuvchi Interfeysi (UI):** Veb-sayt va kelajakda mobil ilova ko'rinishida.
* **RESTful API:** Frontend va Backend o'rtasidagi aloqa uchun standart interfeys.
* **Avtorizatsiya va Autentifikatsiya mexanizmi:** JWT (JSON Web Tokens) yoki OAuth2.
* **Bildirishnoma xizmati:** Email, SMS (agar kerak bo'lsa), tizim ichidagi push-bildirishnomalar.
* **Fayl yuklash xizmati:** Tushuntirish xatlarini saqlash uchun.
**3.3. Ma'lumotlar oqimi**
1. **Starosta:** Frontend orqali davomat, uy vazifasi, xulq-atvor ma'lumotlarini kiritadi. Bu ma'lumotlar API orqali Backendga yuboriladi.
2. **Backend:** Kelgan ma'lumotlarni validatsiya qiladi, biznes mantig'ini qo'llaydi va Ma'lumotlar bazasiga yozadi. Shu bilan birga, tegishli dekanlarga avtomatik bildirishnomalar yuborish uchun Bildirishnoma xizmatiga so'rov yuboradi.
3. **Ma'lumotlar bazasi:** Barcha ma'lumotlarni (foydalanuvchilar, guruhlar, darslar, davomat, uy vazifasi, xulq-atvor, tushuntirish xatlari) saqlaydi.
4. **Dekan/O'qituvchi/Talaba:** O'zlarining shaxsiy panellariga kirib, API orqali Backenddan kerakli ma'lumotlarni (hisobotlar, shaxsiy davomat, dars jadvali) olib, Frontendda ko'rishadi.
5. **Tushuntirish xatlari:** Talaba/Starosta faylni yuklaydi, fayl xizmatga yuklanadi va Ma'lumotlar bazasida faylga havola saqlanadi. Dekan xatni ko'rish yoki yuklab olishi mumkin.
---
### 4. FUNKSIONAL TALABLAR
**4.1. Super Admin Moduli**
* **Foydalanuvchilarni boshqarish (CRUD):**
* Yangi foydalanuvchi (Dekan, O'qituvchi, Starosta, Talaba) yaratish.
* Mavjud foydalanuvchilar ma'lumotlarini tahrirlash (Ism, Familiya, Parol, Email, Telefon).
* Foydalanuvchilarni o'chirish/faolsizlantirish.
* Har bir foydalanuvchiga rol tayinlash (Bir foydalanuvchi bir nechta rolga ega bo'lishi mumkin - masalan, o'qituvchi va guruh rahbari).
* Parollarni tiklash/o'zgartirish.
* Foydalanuvchilar ro'yxatini filtrlash, qidirish, sahifalash.
* **Universitet tuzilmasini boshqarish (CRUD):**
* Fakultetlar, Kafedralar, Guruhlar, Fanlar, Auditoriyalar ro'yxatini yaratish, tahrirlash, o'chirish.
* Guruhlarga talabalarni biriktirish/olib tashlash.
* Guruhlarga starosta tayinlash/o'zgartirish.
* Fanlarga o'qituvchilarni biriktirish/olib tashlash.
* **Dars jadvallarini boshqarish (CRUD):**
* Har bir guruh uchun haftalik dars jadvalini yaratish, tahrirlash, o'chirish.
* Jadvalga quyidagi ma'lumotlarni kiritish: kun, para vaqti, fan, guruh, o'qituvchi, auditoriya, dars turi (ma'ruza/amaliy).
* Jadvalni import/eksport qilish (masalan, Excel orqali).
* Jadvalni qidirish va filtrlash imkoniyati.
* **Tizim sozlamalari:**
* Davomatni belgilash uchun vaqt oralig'ini sozlash (masalan, dars boshlanishidan 15 daqiqa oldin faol, dars tugaganidan 15 daqiqa keyin yopilishi).
* Ogohlantirish chegaralarini sozlash (masalan, 3 kun ketma-ket darsga kelmasa ogohlantirish).
* Bildirishnoma turlarini (email, SMS) yoqish/o'chirish.
* **Tizim jurnallari (Logs):** Barcha muhim harakatlarni (kim, nima, qachon) qayd etish.
**4.2. Dekan Moduli**
* **Boshqaruv paneli (Dashboard):**
* Joriy kun uchun 1-kurslar bo'yicha umumiy davomat statistikasi (kelgan, kelmagan, kech qolgan talabalar soni/foizi).
* Eng ko'p dars qoldirgan talabalar ro'yxati (eng kam davomatli top-5).
* Eng yomon/yaxshi xulq-atvorli talabalar.
* Yangi tushuntirish xatlari soni.
* So'nggi kiritilgan davomat, uy vazifasi va xulq-atvor ma'lumotlari.
* **Real vaqtda davomatni kuzatish:**
* Har bir dars (para) tugashi bilan starostalar tomonidan kiritilgan davomat ma'lumotlari avtomatik yangilanishi kerak.
* Guruhlar, fanlar, sanalar bo'yicha filtrlash imkoniyati.
* Har bir dars bo'yicha talabalarning batafsil davomatini ko'rish (kelgan, kelmadi, kech qoldi, sababi, kech qolgan daqiqalar).
* **Tushuntirish xatlarini boshqarish:**
* Kelmadi/Kech qoldi deb belgilangan talabalar tomonidan yuklangan/kiritilgan tushuntirish xatlarini ko'rish.
* Xatni tasdiqlash (Approved) yoki rad etish (Rejected) imkoniyati (izoh bilan).
* Xatlarni yuklab olish imkoniyati.
* **Uy vazifasi holatini kuzatish:**
* Guruhlar va talabalar bo'yicha uy vazifasini topshirish holati (topshirgan, topshirmagan, kechiktirgan) haqida ma'lumot.
* Tarixiy ma'lumotlarni ko'rish.
* **Xulq-atvor yozuvlarini ko'rish:**
* Starostalar tomonidan kiritilgan talabalarning ijobiy/salbiy xulq-atvor yozuvlarini ko'rish.
* Talaba profili orqali xulq-atvor tarixini ko'rish.
* **Hisobotlar yaratish va eksport qilish:**
* Kunlik, haftalik, oylik, semestrlik davomat hisobotlari.
* Guruhlar bo'yicha davomat reytingi.
* Eng ko'p dars qoldirgan talabalar ro'yxati.
* Uy vazifasini topshirish bo'yicha hisobotlar.
* Hisobotlarni PDF, Excel formatida eksport qilish.
* **Starostalarga xabar yuborish:**
* Tizim orqali bir yoki bir nechta starostaga xabar/eslatma yuborish.
* **Ogohlantirishlar:**
* Kam davomatli talabalar (belgilangan chegaradan past bo'lsa).
* Tushuntirish xati yuklamagan talabalar.
* Starosta davomatni belgilashni unutgan hollar.
**4.3. O'qituvchi Moduli**
* **Dars jadvali:**
* O'ziga biriktirilgan fanlar va guruhlar bo'yicha haftalik dars jadvalini ko'rish.
* **Davomatni ko'rish:**
* O'zi dars beradigan guruhlarning har bir darsi uchun davomat ma'lumotlarini ko'rish.
* Talabalarning davomati tarixini ko'rish.
* **Uy vazifasi holatini ko'rish:**
* O'zining fanlari bo'yicha talabalarning uy vazifasini topshirish holatini ko'rish.
* **Xulq-atvor yozuvlarini ko'rish:**
* O'zi dars beradigan guruh talabalarining xulq-atvor yozuvlarini ko'rish.
* **Izoh qoldirish (ixtiyoriy):**
* Starosta kiritgan davomat, uy vazifasi yoki xulq-atvor yozuvlariga o'zining izohini qo'shish imkoniyati.
**4.4. Starosta Moduli**
* **Boshqaruv paneli:**
* Joriy kun uchun guruhining dars jadvali.
* Navbatdagi darsga davomat belgilash uchun eslatma.
* Dekandan kelgan so'nggi xabarlar.
* **Dars jadvalini ko'rish:**
* O'z guruhining haftalik dars jadvalini ko'rish.
* **Davomatni belgilash:**
* Har bir dars uchun "Davomatni belgilash" tugmasi.
* Tugma dars boshlanishidan 15 daqiqa oldin faollashishi va dars tugaganidan 15 daqiqa keyin yopilishi (Super Admin sozlamalariga asosan) kerak.
* Talabalar ro'yxati (ism, familiya) jadvali.
* Har bir talaba uchun: "Kelgan", "Kelmadi", "Kech qoldi" radio tugmalari.
* "Kelmadi" tanlansa:
* "Sabab" maydoni (dropdown: Kasallik, Oilaviy sabab, Boshqa).
* "Tushuntirish xatini yuklash" maydoni (fayl yuklash).
* "Kech qoldi" tanlansa:
* "Necha daqiqa kech qoldi?" (raqam kiritish maydoni).
* "Sabab" maydoni (dropdown: Trafik, Uyqu, Boshqa).
* Davomat belgilangan vaqt avtomatik qayd etilishi.
* Ma'lumotlarni "Dekanga yuborish" tugmasi, yuborilgach tasdiq xabari.
* Bir para (80 daqiqa) tugashi bilanoq dekanatga ma'lumotlar avtomatik yetkazilishi.
* **Uy vazifasini belgilash:**
* Davomat bilan birga yoki alohida "Uy vazifasini belgilash" tugmasi.
* Talabalar ro'yxati.
* Har bir talaba uchun: "Topshirgan", "Topshirmagan", "Kechiktirib topshirgan" radio tugmalari.
* Qisqa izoh qoldirish imkoniyati.
* Ma'lumotlarni "Dekanga yuborish" tugmasi.
* **Xulq-atvorni qayd etish:**
* Talabani tanlash.
* "Ijobiy" yoki "Salbiy" xulq-atvor turini belgilash.
* Batafsil izoh kiritish maydoni.
* Ma'lumotlarni "Dekanga yuborish" tugmasi.
* **Tushuntirish xatlarini ko'rish/tasdiqlash:**
* Talabalar tomonidan yuklangan tushuntirish xatlarini ko'rish.
* Ularning holatini nazorat qilish (yuklangan, tekshirilmoqda).
* **Dekandan kelgan xabarlarni ko'rish.**
**4.5. Talaba Moduli**
* **Shaxsiy profil:**
* O'zining shaxsiy ma'lumotlarini ko'rish (faqat o'qish uchun).
* **Dars jadvali:**
* O'z guruhining haftalik dars jadvalini ko'rish.
* **Davomat tarixi:**
* Har bir dars bo'yicha o'zining davomati holatini ko'rish (kelgan, kelmadi, kech qoldi).
* Sabablarni va agar yuklangan bo'lsa, tushuntirish xatining holatini ko'rish.
* **Tushuntirish xati yuklash:**
* Darsga kelmaganligi yoki kech qolganligi sababini tushuntiruvchi xatni tizimga yuklash (PDF/JPG formatida).
* Xat holatini kuzatish (tekshirilmoqda, tasdiqlandi, rad etildi).
* **Uy vazifasi holati:**
* Har bir fan bo'yicha o'zining uy vazifasini topshirish holatini ko'rish.
* **Xulq-atvor yozuvlari:**
* O'ziga tegishli xulq-atvor yozuvlarini ko'rish (shaffoflik uchun).
* **Bildirishnomalar:** Dekanatdan kelgan ogohlantirishlar, xabarlar.
**4.6. Umumiy funksiyalar (Bildirishnomalar, Hisobotlar)**
* **Avtomatik bildirishnomalar:**
* Starostalarga: "Davomatni belgilash vaqti keldi", "Davomat muvaffaqiyatli yuborildi", Dekandan xabar keldi.
* Dekanlarga: "Starosta [guruh] davomatni yubordi", "Talaba [ism] ogohlantirish chegarasidan o'tdi", "Yangi tushuntirish xati yuklandi".
* Talabalarga: "Darsga kelmaganingiz uchun tushuntirish xati yuklashingiz kerak", "Dekanatdan ogohlantirish".
* Bildirishnomalar tizim ichida va/yoki email orqali yuboriladi.
* **Hisobotlarni generatsiya qilish:**
* Dekan va Super Admin uchun turli xil filtrlangan hisobotlarni (Excel, PDF) yaratish imkoniyati.
* Hisobotlarda ma'lumotlarni saralash (sort) va qidirish imkoniyatlari bo'ladi.
---
### 5. NOFUNKSIONAL TALABLAR
**5.1. Ishlash qobiliyati (Performance)**
* Sahifalarni yuklash vaqti: 2 soniyadan oshmasligi kerak (Internet tezligiga bog'liq).
* Davomat ma'lumotlarini yuborish: 1 soniya ichida.
* Hisobotlarni yaratish: Katta hajmli hisobotlar 5-10 soniya ichida (masalan, semestrlik).
* Bir vaqtning o'zida 500+ foydalanuvchini qo'llab-quvvatlash qobiliyati.
**5.2. Xavfsizlik (Security)**
* **Avtorizatsiya va Autentifikatsiya:** Kuchli parol siyosati, ikki faktorli autentifikatsiya (ixtiyoriy).
* **Ma'lumotlarni shifrlash:**
* Aloqada (in transit): SSL/TLS protokoli orqali.
* Saqlashda (at rest): Ma'lumotlar bazasida shaxsiy ma'lumotlar shifrlanishi mumkin (masalan, parollar).
* **Kirish huquqlarini cheklash:** Rolga asoslangan kirish nazorati (RBAC). Har bir rol faqat o'ziga tegishli ma'lumotlarga kira olishi kerak.
* **Kiritilgan ma'lumotlarni validatsiya qilish:** SQL Injection, XSS (Cross-Site Scripting) kabi hujumlardan himoya.
* **Auditing:** Barcha muhim harakatlarni (login, ma'lumotlarni o'zgartirish) jurnalga yozish.
* Parollar xeshlangan holda saqlanishi kerak.
**5.3. Foydalanish qulayligi (Usability/UX)**
* **Intuitiv interfeys:** Foydalanuvchilar uchun oson tushunarli va qulay navigatsiyaga ega bo'lishi kerak.
* **Moslashuvchan dizayn (Responsive Design):** Tizim turli qurilmalarda (desktop, planshet, mobil) to'g'ri ko'rinishi va ishlashi kerak.
* **Aniqlik:** Xabar va ogohlantirishlar aniq va tushunarli bo'lishi kerak.
* **Minimallashtirilgan bosishlar:** Davomatni kiritish kabi tez-tez bajariladigan amallar uchun bosishlar soni minimal bo'lishi kerak.
**5.4. Ishonchlilik (Reliability)**
* **Ishlash vaqti (Uptime):** Tizim yiliga 99.9% ishlashi kerak.
* **Xatolarni boshqarish:** Tizim xatoliklarni to'g'ri boshqarishi va foydalanuvchilarga tushunarli xabar berishi kerak.
* **Ma'lumotlarni zaxiralash:** Ma'lumotlar bazasi muntazam ravishda zaxiralanishi va tiklanish mexanizmlari mavjud bo'lishi kerak.
**5.5. Miqyoslilik (Scalability)**
* Kelajakda talabalar soni, kurslar soni oshishi bilan tizimning ishlash qobiliyatini saqlab qolishi.
* Vertikal va gorizontal miqyoslilikni qo'llab-quvvatlash.
**5.6. Texnik xizmat ko'rsatish (Maintainability)**
* Dastur kodi toza, izohli va yaxshi strukturalangan bo'lishi kerak.
* Tizimni yangilash va kengaytirish oson bo'lishi kerak.
* Tizimning yaxshi hujjatlashtirilishi.
**5.7. Lokalizatsiya (Localization)**
* Tizim interfeysi to'liq o'zbek tilida bo'lishi kerak.
* Sana va vaqt formatlari O'zbekistonda qabul qilingan standartlarga mos kelishi.
**5.8. Mavjud infratuzilma bilan integratsiya**
* Agar mavjud bo'lsa, universitetning boshqa tizimlari (masalan, shaxsiy kabinetlar, elektron pochta xizmati) bilan kelajakda integratsiya qilish imkoniyatini ko'zda tutish.
---
### 6. TEXNIK STAK (TECHNOLOGY STACK)
**6.1. Backend**
* **Dasturlash tili:** Python
* **Freymvork:** Django (tezkor rivojlanish, ORM, Admin paneli) yoki Flask (engilroq, moslashuvchan).
* **API arxitekturasi:** RESTful API.
* **Veb-server (ishlab chiqarishda):** Gunicorn/uWSGI (WSGI ilova serveri), Nginx (proksi-server).
**6.2. Frontend**
* **JavaScript freymvorki/kutubxonasi:** React.js yoki Vue.js (foydalanuvchi interfeysini tez va samarali yaratish uchun).
* **HTML/CSS freymvorki:** Bootstrap 5 yoki Tailwind CSS (responsiv dizayn va tezkor UI yaratish uchun).
* **Grafiklar/diagrammalar uchun:** Chart.js yoki D3.js.
**6.3. Ma'lumotlar bazasi**
* **Relatsion ma'lumotlar bazasi:** PostgreSQL (miqyoslilik va ma'lumotlar yaxlitligini ta'minlash uchun) yoki MySQL.
* **ORR (Object-Relational Mapping):** Django ORM (Django tanlangan bo'lsa).
**6.4. Deployment va Server**
* **Cloud platformasi:** AWS, Google Cloud Platform (GCP) yoki Azure (agar universitetda mavjud serverlar yetarli bo'lmasa).
* **Kontaynerizatsiya (ixtiyoriy):** Docker (Deployment jarayonini soddalashtirish uchun).
* **Operatsion tizim:** Ubuntu Server (Linux).
**6.5. Versiya nazorati**
* **Git:** Dastur kodini boshqarish va jamoaviy ishlash uchun.
* **Kod saqlash joyi:** GitHub, GitLab yoki Bitbucket.
---
### 7. LOYIHANI AMALGA OSHIRISH BOSQICHLARI
**7.1. 1-bosqich: Talablarni yig'ish va tahlil qilish (2 hafta)**
* Barcha manfaatdor tomonlar (dekan, starostalar vakillari, o'qituvchilar vakillari, IT bo'limi) bilan uchrashuvlar o'tkazish.
* Batafsil talablarni hujjatlashtirish (ushbu TT ni yakunlash).
* Foydalanuvchi hikoyalari (User Stories) va foydalanish holatlari (Use Cases) yaratish.
**7.2. 2-bosqich: Dizayn va prototiplash (3 hafta)**
* **Arxitektura dizayni:** Tizimning umumiy arxitekturasi, modullararo aloqalar.
* **Ma'lumotlar bazasi dizayni:** ERD (Entity Relationship Diagram) yaratish, jadvallar strukturasini aniqlash.
* **UI/UX dizayni:** Wireframes, Mockups va Prototiplar yaratish. Foydalanuvchilar bilan sinovdan o'tkazish.
* API dizayni.
**7.3. 3-bosqich: Dasturlash va ishlab chiqish (8-10 hafta)**
* Backend ishlab chiqish (API endpoints, biznes mantig'i, ma'lumotlar bazasi integratsiyasi).
* Frontend ishlab chiqish (foydalanuvchi interfeysi, API bilan aloqa).
* Autentifikatsiya va avtorizatsiya mexanizmlarini joriy etish.
* Fayl yuklash va saqlash funksiyalarini amalga oshirish.
* Bildirishnoma xizmatini integratsiya qilish.
**7.4. 4-bosqich: Testlash (3 hafta)**
* Unit testlar.
* Integratsiya testlari (Backend-Frontend, API testlari).
* Tizim testlari (barcha modullarning birgalikda ishlashini tekshirish).
* Foydalanuvchi qabul testlari (UAT) - haqiqiy dekan, starostalar, talabalar tomonidan sinovdan o'tkazish.
* Xavfsizlik testlari.
**7.5. 5-bosqich: Joylashtirish (Deployment) (1 hafta)**
* Tizimni ishlab chiqarish muhitiga joylashtirish (serverlarni sozlash, dasturni o'rnatish).
* Ma'lumotlar bazasini sozlash va dastlabki ma'lumotlarni kiritish.
* SSL sertifikatlarini o'rnatish.
* Zaxiralash mexanizmlarini sozlash.
**7.6. 6-bosqich: O'qitish va qo'llab-quvvatlash (2 hafta)**
* Foydalanuvchilar (dekan, starostalar, o'qituvchilar) uchun tizimdan foydalanish bo'yicha treninglar o'tkazish.
* Foydalanuvchi qo'llanmalari va texnik hujjatlarni yaratish.
* Dastlabki qo'llab-quvvatlash va muammolarni hal qilish.
**7.7. 7-bosqich: Texnik xizmat ko'rsatish va rivojlantirish (Doimiy)**
* Tizimni muntazam monitoring qilish.
* Xatoliklarni tuzatish va yangilanishlarni chiqarish.
* Foydalanuvchilarning qayta aloqasi asosida tizimni takomillashtirish va yangi funksiyalarni qo'shish.
---
### 8. TESTLASH STRATEGIYASI
**8.1. Unit testlar:** Har bir alohida funksiyaning (masalan, foydalanuvchini yaratish, davomatni hisoblash) to'g'ri ishlashini tekshirish. Dasturchilar tomonidan amalga oshiriladi.
**8.2. Integratsiya testlari:** Turli modullar yoki xizmatlarning birgalikda ishlashini tekshirish (masalan, frontenddan ma'lumot yuborilganda backendning uni to'g'ri qabul qilib, ma'lumotlar bazasiga yozishini tekshirish).
**8.3. Tizim testlari:** Butun tizimning umumiy talablarga javob berishini tekshirish. Funktsional va nofunksional talablarni qamrab oladi.
**8.4. Foydalanuvchi qabul testlari (UAT):** Haqiqiy foydalanuvchilar (dekan, starostalar, talabalar) tomonidan tizimni sinovdan o'tkazish, ularning talablariga javob berishini va foydalanishga qulayligini tasdiqlash.
**8.5. Xavfsizlik testlari:** Penetration testing (penetration test), Vulnerability Scanning (zaifliklarni skanerlash) kabi usullar orqali tizimning xavfsizligini tekshirish.
---
### 9. KELAJAKDAGI RIVOJLANISHLAR
1. **Mobil ilova:** Starosta va talabalar uchun mahalliy Android va iOS ilovalarini ishlab chiqish.
2. **QR-kod orqali davomat:** Auditoriyaga kirishda talabalarning QR-kod orqali davomatni belgilash mexanizmi (starosta nazorati ostida).
3. **LMS bilan integratsiya:** Universitetning mavjud o'quv jarayonini boshqarish tizimi (LMS) bilan integratsiya.
4. **Ota-onalar paneli:** Ota-onalar uchun farzandlarining davomati va o'zlashtirishini kuzatish imkoniyati (cheklangan ma'lumotlar bilan).
5. **Tahlil va prognoz:** Mashina o'rganishi asosida talabalarning kelajakdagi o'zlashtirish va davomat muammolarini prognoz qilish.
6. **Talaba fikr-mulohazasi:** O'qituvchilar va darslar bo'yicha anonim fikr-mulohazalar yig'ish.
---
### 10. QO'SHIMCHA ILKOSLAR
**10.1. Ma'lumotlar bazasi strukturasi (Entity Relationship Diagram - ERD)**
*(Bu yerda ERD sxemasi taqdim etilishi kerak. Bu jadvallar, ustunlar, ular orasidagi bog'liqliklarni (one-to-one, one-to-many, many-to-many) ko'rsatadi.)*
**Asosiy jadvallar (misollar):**
* `Users`: id, first_name, last_name, email, phone, password_hash, role_id, ...
* `Roles`: id, name (SuperAdmin, Dekan, Oqituvchi, Starosta, Talaba)
* `Faculties`: id, name
* `Departments`: id, name, faculty_id
* `Groups`: id, name, year, faculty_id, starosta_id
* `Students`: id, user_id, group_id, student_id_number, ...
* `Teachers`: id, user_id, department_id, ...
* `Subjects`: id, name, code, department_id, credits
* `Auditoriums`: id, name, capacity
* `TimetableEntries`: id, group_id, subject_id, teacher_id, auditorium_id, day_of_week, start_time, end_time, lesson_type
* `Attendance`: id, timetable_entry_id, student_id, status (P, A, L), late_minutes, reason, explanation_letter_url, submitted_at, approved_by_dekan
* `Homework`: id, timetable_entry_id, student_id, status (S, NS, LS), comment, submitted_at
* `Behavior`: id, student_id, recorder_id (starosta), type (Positive, Negative), description, recorded_at
* `Notifications`: id, user_id, type, message, is_read, created_at
**10.2. UI/UX Maketlari (Wireframes/Mockups)**
*(Bu yerda har bir asosiy sahifaning vizual maketlari, tugmalar joylashuvi, navigatsiya elementlari ko'rsatiladi. Masalan, Starosta uchun davomat kiritish sahifasi, Dekan uchun dashboard maketi va h.k.)*
---
Ushbu texnik topshiriq loyiha jamoasi uchun yetarli darajada batafsil bo'lishi va loyihani muvaffaqiyatli amalga oshirishga yordam berishi kerak. Agar biror joyi qo'shimcha tushuntirish talab qilsa yoki o'zgarishlar kiritish kerak bo'lsa, xabar bering!