From 33d067b67e0e775b4bbfbb018eab617f5735e348 Mon Sep 17 00:00:00 2001 From: unexplrd Date: Wed, 12 Mar 2025 20:24:48 +0200 Subject: [PATCH] feat!: move department_gen to edu_programs feat!: rename "shorthand" variables to "short" WIP: feat!: derive group name from edu_program docs(template): adjust templates accordingly style: format with typstyle --- lib.typ | 38 +++++++++++---------- template/coursework.typ | 76 ++++++++++++++++++++++++++--------------- template/lab.typ | 10 +++--- 3 files changed, 73 insertions(+), 51 deletions(-) diff --git a/lib.typ b/lib.typ index 7377505..dc50885 100644 --- a/lib.typ +++ b/lib.typ @@ -15,10 +15,12 @@ /// education program abbreviations to name & number #let edu_programs = ( "ПЗПІ": ( + department_gen: "Програмної інженерії", name: "Інженерія програмного забезпечення", number: 121, // TODO: ПЗПІ is "F2" now ), "КУІБ": ( + department_gen: "Інфокомунікацій", name: "Управління інформаційною безпекою", number: 125, ), @@ -264,11 +266,10 @@ /// -> content /// - doc (content): Content to apply the template to. /// - title (str): Title of the document. -/// - subject_shorthand (str): Subject short name. -/// - department_gen (str): Department name in genitive form. +/// - subject_short (str): Subject short name. /// - authors ((name: str, full_name_gen: str, variant: int, group: str, gender: str),): List of Authors dicts. /// - mentors ((name: str, gender: str, degree: str),): List of mentors dicts. -/// - edu_program_shorthand (str): Education program shorthand. +/// - edu_program_short (str): Education program shorthand. /// - task_list (done_date: datetime, initial_date: datetime, source: (content | str), content: (content | str), graphics: (content | str)): Task list object. /// - calendar_plan ( plan_table: (content | str), approval_date: datetime): Calendar plan object. /// - abstract (keywords: (str, ), text: (content | str)): Abstract object. @@ -277,11 +278,10 @@ #let cw-template( doc, title: "NONE", - subject_shorthand: "NONE", - department_gen: "Програмної інженерії", + subject_short: "NONE", author: (), mentors: (), - edu_program_shorthand: "ПЗПІ", + edu_program_short: "ПЗПІ", task_list: (), calendar_plan: (), abstract: (), @@ -304,7 +304,7 @@ let head_mentor = mentors.at(0) - let edu_program = edu_programs.at(edu_program_shorthand) + let edu_program = edu_programs.at(edu_program_short) // page 1 {{{2 [ @@ -323,7 +323,7 @@ ДО КУРСОВОЇ РОБОТИ - з дисципліни: "#subjects.at(subject_shorthand, default: "NONE")" + з дисципліни: "#subjects.at(subject_short, default: "NONE")" Тема роботи: "#title" @@ -389,9 +389,9 @@ Спеціальність ], { - uline(align: left, department_gen) + uline(align: left, edu_program.department_gen) linebreak() - uline(align: left, subjects.at(subject_shorthand)) + uline(align: left, subjects.at(subject_short)) linebreak() uline(align: left, [#edu_program.number #edu_program.name]) }, @@ -671,26 +671,28 @@ /// -> content /// - doc (content): Content to apply the template to. /// - doctype ("ЛБ" | "ПЗ"): Document type. +/// - edu_program_short (str): Education program shorthand. /// - title (str): Title of the document. -/// - subject_shorthand (str): Subject short name. -/// - department_gen (str): Department name in genitive form. +/// - subject_short (str): Subject short name. /// - worknumber (int): Number of the work, can be omitted. /// - authors ((name: str, full_name_gen: str, variant: int, group: str, gender: str),): List of Authors dicts. /// - mentors (name: str, gender: str or none, degree: str): Mentors objects. #let lab-pz-template( doc, doctype: "NONE", + edu_program_short: "ПЗПІ", title: "NONE", - subject_shorthand: "NONE", - department_gen: "Програмної інженерії", + subject_short: "NONE", worknumber: 1, authors: (), - mentors: (), + mentors: (gender: none), ) = { set document(title: title, author: authors.at(0).name) show: style + let edu_program = edu_programs.at(edu_program_short) + context counter(heading).update(worknumber - 1) // page 1 {{{2 @@ -699,7 +701,7 @@ ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ \ \ - Кафедра #department_gen + Кафедра #edu_program.department_gen \ \ \ Звіт \ @@ -707,7 +709,7 @@ #if doctype == "ЛБ" [лабораторної роботи] else [практичної роботи] #if worknumber != none [№ #worknumber] - з дисципліни: "#subjects.at(subject_shorthand, default: "UNLNOWN SUBJECT, PLEASE OPEN AN ISSUE")" + з дисципліни: "#subjects.at(subject_short, default: "UNKNOWN SUBJECT, PLEASE OPEN AN ISSUE")" з теми: "#title" @@ -720,7 +722,7 @@ let author = authors.at(0) if author.gender == "m" [Виконав:\ ] else [Виконала:\ ] [ - ст. гр. #author.group\ + ст. гр. #author.edu_program\-#author.group\ #author.name\ ] if author.variant != none [Варіант: №#author.variant] diff --git a/template/coursework.typ b/template/coursework.typ index 9393607..e3509ce 100644 --- a/template/coursework.typ +++ b/template/coursework.typ @@ -4,26 +4,14 @@ name: "Ситник Є. С.", full_name_gen: "Ситника Єгора Сергійовича", variant: 13, - group: "ПЗПІ-23-2", + group: "23-2", gender: "m", ) #let mentors = ( - ( - name: "Черепанова Ю. Ю.", - gender: "f", - degree: "Ст. викл. каф. ПІ", - ), - ( - name: "Русакова Н. Є.", - gender: "f", - degree: "Доц. каф. ПІ", - ), - ( - name: "Широкопетлєва М. С.", - gender: "f", - degree: "Ст. викл. каф. ПІ", - ), + (name: "Черепанова Ю. Ю.", gender: "f", degree: "Ст. викл. каф. ПІ"), + (name: "Русакова Н. Є.", gender: "f", degree: "Доц. каф. ПІ"), + (name: "Широкопетлєва М. С.", gender: "f", degree: "Ст. викл. каф. ПІ"), ) #let task_list = ( @@ -38,19 +26,39 @@ plan_table: table( columns: 4, align: (center, left, center, center), - [Номер], [Назва етапів курсової роботи], [Строк виконання етапів роботи], [Примітки], + [Номер], + [Назва етапів курсової роботи], + [Строк виконання етапів роботи], + [Примітки], + [1], [Аналіз предметної області], [15.09.24 – 24.09.24], [Виконано], [2], [Концептуальне моделювання], [24.09.24-30.09.24], [~], [2], [Постановка задачі], [28.09.24 – 2.10.24], [Виконано], [3], [Побудова ER-діаграми та схеми БД], [2.10.24 – 18.10.24], [Виконано], - [4], [Оформлення розділів 1, 2 та 3.1, 3.2 пояснювальної записки], [10.10.24 - 18.10.24], [Виконано], + [4], + [Оформлення розділів 1, 2 та 3.1, 3.2 пояснювальної записки], + [10.10.24 - 18.10.24], + [Виконано], + [5], [Перша контрольна точка з курсової роботи], [20.10.24], [Виконано], [6], [Нормалізація бази даних], [20.10.24 - 15.11.24], [Виконано], [7], [Створення програми], [20.10.24 – 20.11.24], [Виконано], - [8], [Тестування програми, наповнення бази даних], [20.11.24 - 5.12.24], [Виконано], + [8], + [Тестування програми, наповнення бази даних], + [20.11.24 - 5.12.24], + [Виконано], + [9], [Друга контрольна точка з курсової роботи], [7.12.24], [Виконано], - [10], [Реалізація остаточної версії програми], [7.12.24-15.12.24], [Виконано], - [11], [Оформлення інших розділів пояснювальної записки], [1.11.24 – 25.12.24], [Виконано], + [10], + [Реалізація остаточної версії програми], + [7.12.24-15.12.24], + [Виконано], + + [11], + [Оформлення інших розділів пояснювальної записки], + [1.11.24 – 25.12.24], + [Виконано], + [12], [Третя контрольна точка з курсової роботи], [27.12.24], [Виконано], ), approval_date: datetime(year: 2024, month: 12, day: 27), @@ -69,11 +77,26 @@ "SQL", ), text: [ - Мета даної роботи -- проєктування та розробка інформаційної системи «Помічник класного керівника. Керування класом», яка спрямована на автоматизацію процесів управління класом, облік даних про учнів, планування та аналіз навчального процесу. Основна задача інформаційної системи – спростити роботу класного керівника, забезпечити ефективну організацію документації та взаємодію з учасниками освітнього процесу. + Мета даної роботи -- проєктування та розробка інформаційної системи «Помічник + класного керівника. Керування класом», яка спрямована на автоматизацію процесів + управління класом, облік даних про учнів, планування та аналіз навчального + процесу. Основна задача інформаційної системи – спростити роботу класного + керівника, забезпечити ефективну організацію документації та взаємодію з + учасниками освітнього процесу. - Для реалізації системи було використано сучасний стек технологій, а саме: Go -- як основна мова програмування для створення серверної логіки, HTMX -- для динамічного оновлення інтерфейсу без використання складних фреймворків, MySQL -- як СУБД для зберігання даних про учнів, їх оцінки та розклад, Neovim -- як середовище для швидкої та ефективної розробки коду, Go Echo -- веб-фреймворк для створення REST API, Go SQLx -- бібліотека для роботи з базою даних, що забезпечує зручність і гнучкість. + Для реалізації системи було використано сучасний стек технологій, а саме: Go -- + як основна мова програмування для створення серверної логіки, HTMX -- для + динамічного оновлення інтерфейсу без використання складних фреймворків, MySQL -- + як СУБД для зберігання даних про учнів, їх оцінки та розклад, Neovim -- як + середовище для швидкої та ефективної розробки коду, Go Echo -- веб-фреймворк для + створення REST API, Go SQLx -- бібліотека для роботи з базою даних, що + забезпечує зручність і гнучкість. - Результат роботи – веб-додаток, який дозволяє обліковувати особисті дані учнів та їхніх опікунів, включаючи інформацію про успішність, відвідуваність та інші показники; планувати розклад занять; генерувати звіти про успішність учнів та переглядати різну статистику. Інтерфейс, створений з використанням HTMX, легко адаптується під потреби користувача. + Результат роботи – веб-додаток, який дозволяє обліковувати особисті дані учнів + та їхніх опікунів, включаючи інформацію про успішність, відвідуваність та інші + показники; планувати розклад занять; генерувати звіти про успішність учнів та + переглядати різну статистику. Інтерфейс, створений з використанням HTMX, легко + адаптується під потреби користувача. ], ) @@ -94,9 +117,8 @@ #show: cw-template.with( title: "Інформаційна система «Помічник класного керівника». Керування класом", - subject_shorthand: "БД", - department_gen: "Програмної інженерії", - edu_program_shorthand: "ПЗПІ", + subject_short: "БД", + edu_program_short: "ПЗПІ", author: author, mentors: mentors, task_list: task_list, diff --git a/template/lab.typ b/template/lab.typ index 604b08a..647af5e 100644 --- a/template/lab.typ +++ b/template/lab.typ @@ -2,9 +2,9 @@ #show: lab-pz-template.with( doctype: "ЛБ", + edu_program_short: "ПЗПІ", title: "Інформаційна система «Помічник класного керівника». Керування класом", - subject_shorthand: "БД", - department_gen: "Програмної інженерії", + subject_short: "БД", authors: ( ( name: "Ситник Є. С.", @@ -14,10 +14,8 @@ gender: "m", ), ), - mentor: ( - name: "Черепанова Ю. Ю.", - gender: "f", - degree: "Ст. викл. каф. ПІ", + mentors: ( + (name: "Черепанова Ю. Ю.", gender: "f", degree: "Ст. викл. каф. ПІ"), ), worknumber: 1, )