К содержимому
Hub
Integral — elektron jurnal

Integral — elektron jurnal

Veb2026JavaScriptHTMLCSSБез зависимостейОбразование

Repetitor uchun jurnal: baholar, davomat, o'quvchilar to'lovi va oylik daromad. Baho pasaysa, to'lov ikki barobar bo'ladi.

O'qituvchi uchun jurnal: baholar, davomat, o'quvchilar, to'lov, hisobotlar va oylik daromad.

Eng o'ziga xos qismi — ikkilantirish qoidasi: o'quvchining oylik o'rtacha bahosi belgilangan chegaradan pastga tushsa, oylik to'lov avtomatik ikki barobar bo'ladi va hisob-kitob bilan xabar yuboriladi.

Oy to'liq hisoblanadi — o'quvchi kelgan yoki kelmaganidan qat'i nazar.

Toza HTML, CSS va JavaScript'da bitta sahifa qilib yozilgan: yig'ish ham, kutubxonalar ham kerak emas, internetsiz ishlaydi.

Qanday qurilgan

Loyihaning haqiqiy kodidan parcha — ichida nima borligini ko'rish uchun.

Repozitoriy
JavaScript
function calcPay(stu){  const avg = monthAvg(stu.id);  const r = state.settings.doubling;  let mult = 1, why = "обычная";  if(stu.mult !== "auto"){    mult = Number(stu.mult);    why = mult > 1 ? "вручную учителем" : "зафиксирована учителем";  } else if(r.enabled && avg !== null && avg <= r.threshold){    mult = r.multiplier;    why = `ср. балл ${fmtAvg(avg)} ≤ ${fmtAvg(r.threshold)}`;  }  return { avg, base: stu.basePay, mult,           total: Math.round(stu.basePay * mult), why };}/* Месячная оплата: месяц считается целиком, ходил ученик или нет.   В начале нового месяца тариф списывается автоматически. */function totalCharges(stu){  let start = stu.startMonth || CUR_MONTH;  if(start > CUR_MONTH) start = CUR_MONTH;  const months = monthsBetween(start, CUR_MONTH);  let total = 0;  months.forEach(m => { total += Math.round(stu.basePay * monthMult(stu, m)); });  return { total, months: months.length };}
Bog'lanish

Loyiha uchun ariza

Shaklni to'ldiring — tafsilotlar va muddatlarni muhokama qilamiz.

Loyiha bo'yicha: Integral — elektron jurnal
Keyingi loyiha

Stol band qilish boti