staff:courses:no_sql_introduction:course_work

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
staff:courses:no_sql_introduction:course_work [2023/11/22 07:48]
mark [Как сдавать задания]
staff:courses:no_sql_introduction:course_work [2023/12/25 18:16] (current)
mark [Прототип*]
Line 13: Line 13:
 Создавать специально для меня PR НЕ НУЖНО. Ждать моей проверки на ваших PR - бессмысленно:​( Создавать специально для меня PR НЕ НУЖНО. Ждать моей проверки на ваших PR - бессмысленно:​(
  
 +Я проверяю только содержимое ветки main - прошу к моменту сдачи заданий мержить наработки в main. 
 ===== Как сдавать задания ===== ===== Как сдавать задания =====
  
-На всякий случай,​ как оказалось,​ не все этот момент увидели в списке ниже - все задания по курсу сдаются путем написания письма преподавателю. Как и что писать - указано ниже.+На всякий случай,​ как оказалось,​ не все этот момент увидели в списке ниже - **__все задания по курсу сдаются путем написания письма преподавателю__**. Как и что писать - указано ниже.
  
   * Команда внимательно читает требования ниже, убеждается,​ что их результат соответствует описанию.   * Команда внимательно читает требования ниже, убеждается,​ что их результат соответствует описанию.
Line 92: Line 92:
         - Графическое представление модели (сущности и связи, типы данных,​ коллекции - можно использовать ER-диаграмму,​ можно json-схему,​ если она применима к вашему типу СУБД)         - Графическое представление модели (сущности и связи, типы данных,​ коллекции - можно использовать ER-диаграмму,​ можно json-схему,​ если она применима к вашему типу СУБД)
         - Описание назначений коллекций,​ типов данных и сущностей         - Описание назначений коллекций,​ типов данных и сущностей
-        - Оценка ​ объема информации,​ хранимой в модели (сколько потребуется памяти,​ чтобы сохранить объекты,​ как объем зависит от количества объектов - нужно выразить через переменную (количество одного из видов объектов вашей БД))  +        - Оценка ​ объема информации,​ хранимой в модели (сколько потребуется памяти,​ чтобы сохранить объекты,​ как объем зависит от количества объектов - нужно выразить через переменную (количество одного из видов объектов вашей БД)). У вас должна получится формула - зависимость объема от одной переменной. ​ 
-        - **Избыточность модели (отношение между фактическим объемом модели и "​чистым"​ объемом данных).**+        - **Избыточность модели (отношение между фактическим объемом модели и "​чистым"​ объемом данных).**. У вас должна получится формула - зависимость избыточности от одной переменной.
         - **Направление роста модели при увеличении количества объектов каждой сущности.** ​         - **Направление роста модели при увеличении количества объектов каждой сущности.** ​
         - Запросы к модели,​ с помощью которых реализуются сценарии использования ​         - Запросы к модели,​ с помощью которых реализуются сценарии использования ​
Line 112: Line 112:
   - Подготовить прототипы приложения ("​Хранение и представление"​ и "​Анализ"​). Результат:​   - Подготовить прототипы приложения ("​Хранение и представление"​ и "​Анализ"​). Результат:​
     - Приложение компилируется и реализует оговоренные сценарии использования **через пользовательский интерфейс**.     - Приложение компилируется и реализует оговоренные сценарии использования **через пользовательский интерфейс**.
-    - Исходники и исполняемые файлы собранного приложения лежат в репозитории,​ там поставлен тег 0.5 (0.8)+    - Исходники и исполняемые файлы собранного приложения лежат в репозитории,​ там поставлен тег 0.5 (0.8). Что такое тег - https://​git-scm.com/​book/​ru/​v2/​%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D1%82%D0%B5%D0%B3%D0%B0%D0%BC%D0%B8
  
 Про пользовательский интерфейс,​ роли и пользователей:​ Про пользовательский интерфейс,​ роли и пользователей:​
Line 123: Line 123:
   - выполняет одну из следующих функций:​ или позволяет добавление новых элементов данных в БД, или предоставляет интерфейсы для поиска (фильтрации) данных,​   - выполняет одну из следующих функций:​ или позволяет добавление новых элементов данных в БД, или предоставляет интерфейсы для поиска (фильтрации) данных,​
   - если в приложении есть авторизация,​ то в нем должны по умолчанию присутствовать по одному отладочному пользователю на каждую роль, сами пользователи и их данные указаны в README   - если в приложении есть авторизация,​ то в нем должны по умолчанию присутствовать по одному отладочному пользователю на каждую роль, сами пользователи и их данные указаны в README
-  - **вы можете продемонстрировать выполнение всех пунктов выше скринкастом (или ​демкой на занятии)** +  - **вы можете продемонстрировать выполнение всех пунктов выше скринкастом (не более двух минут - сключите запись процесса ​компиляции / загрузки и тд) или работоспособного процесса сборки из репо через docker-compose ​** 
  
 Что подразумевает **прототип "​Анализ"​** - выполненны требования "​Хранение и представление" ​ Что подразумевает **прототип "​Анализ"​** - выполненны требования "​Хранение и представление" ​
   - **приложение разворачивается через docker-compose build --no-cache из репозитория на ubuntu 22.04+**,   - **приложение разворачивается через docker-compose build --no-cache из репозитория на ubuntu 22.04+**,
-  - сервер вашей СУБД добавлен docker-compose.yml ( == вы не используете БД извне ваших контейнеров,​ у вас есть контейнер db),+  - сервер вашей СУБД добавлен docker-compose.yml ​**как отдельный контейнер**( == вы не используете БД извне ваших контейнеров,​ у вас есть контейнер db), типовые ошибки по данному пункту:​ 
 +    - не выставляйте порт БД наружу 
 +    - дополняйте маппинг портов указанием локального интерфейса везде, например '​127.0.0.1:​8081:​8081'​ 
 +    - не монтируйте локальные каталоги,​ монтируйте volume ​ (если вам нужны исходники / файлы проекта,​ то лучше копируйте их на этапе сборки образа) 
 +    - для контейнера СУБД (за исключением memcached и других хранилищ в памяти) обязательно должен использоватся volume, куда будет монитроватся директория с данным СУБД 
 +    - всегда указывайте конкретный тег (версию ) для образов. тег latest указывать нельзя 
 +    - не выности мапинг портов в переменные среды - в этом нет необходимости,​ его можно захардкодить вполне
   - добавлена недостающая часть (либо добавление элементов,​ либо поиск),​   - добавлена недостающая часть (либо добавление элементов,​ либо поиск),​
-  ​- добавлен импорт и экспорт всех данных приложения в машиночитаемом формате (XML, JSON, CSV ....),+    - поиск элементов реализован следующим образом - для каждого поля сущности есть отдельное поле (или поля) ввода поискового запроса,​ что позволяет искать по сложным запросам,​ например "​найди всех сотрудников,​ у которых пол мужской,​ дата рождения до 15.01.2002, имя - Олег"​. Ориентируйтесь на подробные фильтры в интернет-магазинах. 
 +    - поиск в любых текстовых полях обязательно регистронезависимый и по подстроке (не по полному совпадению) 
 +    - как нелья реализовывать поиск по нескольким атрибутам:​ в виде одного поля ввода (input) и выпадающего списка / radiobutton с выбором поля, для которого будет использоваться введенный текст 
 +    - подумайте,​ а что вам за ваш фильтр скажут на собеседовании / на текущей работе?​ Если на ум приходят нецензурные слова, возможно стоит доработать механизм фильтрации.  
 +  ​- добавлен импорт и экспорт всех данных приложения в машиночитаемом формате (XML, JSON, CSV ....) одним действием (одна кнопка Импорт импортирует данные сразу для всего приложенияодна кнопка Экспорт экспортирует сразу все данные всего приложения),​ отдельные кнопки для отдельных сущностей делать не нужно.
   - в БД приложения содержится достаточный набор тестовых данных для демонстрации всех реализованных сценариев использования,​   - в БД приложения содержится достаточный набор тестовых данных для демонстрации всех реализованных сценариев использования,​
  
Line 136: Line 146:
   - Продемонстрировать работоспособность всех сценариев использования на окончательной версии приложения.   - Продемонстрировать работоспособность всех сценариев использования на окончательной версии приложения.
     - Приложение компилируется и реализует все сценарии использования.     - Приложение компилируется и реализует все сценарии использования.
-    - В приложении ​есть ​представление данных в виде таблицы с serverside пагинацией.+    - В приложении ​к представлению данных в виде таблиц ​добавилась serverside пагинация.
     - В приложение добавлено вычисление и отображение статистики / анализа данных / необходимых вычислений согласно заданию. ​     - В приложение добавлено вычисление и отображение статистики / анализа данных / необходимых вычислений согласно заданию. ​
     - Вы можете продемонстрировать это через docker-compose + дистанционно / с помощью скринкаста. ​     - Вы можете продемонстрировать это через docker-compose + дистанционно / с помощью скринкаста. ​
Line 144: Line 154:
  
 ==== Пояснительная записка. ==== ==== Пояснительная записка. ====
 +
 +Пояснительную записку можно писать из любого состояния проекта (не обязательно доводить его до полностью готовой версии). Пример - вы сделали задания на Удовлетворительно,​ соответственно,​ пишите в записке о том, что у вас получилось. ​
  
   - Предоставить пояснительную записку в электронном виде. Результат:​   - Предоставить пояснительную записку в электронном виде. Результат:​
staff/courses/no_sql_introduction/course_work.1700639315.txt.gz · Last modified: 2023/11/22 07:48 by mark