Адміністратору системи доступний список Лікарів за категоріями (педіатр, травматолог, хірург, ...) і список Пацієнтів. Реалізувати можливість сортування:
- пацієнтів:
- за алфавітом;
- за датою народження;
- лікарів:
- за алфавітом;
- за категорією;
Адміністратор реєструє в системі пацієнтів і лікарів і призначає пацієнтові лікаря. Лікар визначає діагноз, робить призначення пацієнту (процедури, ліки, операції), які фіксуються в Лікарняній картці. Призначення може виконати Медсестра (процедури, ліки) або Лікар (будь-яке призначення). Пацієнт може бути виписаний з лікарні, при цьому фіксується остаточний діагноз. (Опціонально: реалізувати можливість збереження / експорта документа з інформацією про виписку пацієнта).
Розробити веб-застосунок, що підтримує функціональність відповідно до варіанту завдання.
-
На основі сутностей предметної області створити класи, які їм відповідають.
-
Класи і методи повинні мати назви, що відображають їх функціональність, і повинні бути рознесені по пакетам.
-
Оформлення коду має відповідати Java Code Convention.
-
Інформацію щодо предметної області зберігати у реляційній базі даних (в якості СУБД рекомендується використовувати MySQL або PostgreSQL).
-
Для доступу до даних використовувати JDBC API із застосуванням готового або ж розробленого самостійно пулу з'єднань.
НЕ допускається використання ORM фреймворків.
-
Застосунок має підтримувати роботу з кирилицею (бути багатомовним), в тому числі при зберіганні інформації в базі даних:
- повинна бути можливість перемикання мови інтерфейсу;
- повинна бути підтримка введення, виведення і зберігання інформації (в базі даних), записаної на різних мовах;
- в якості мов обрати мінімум дві: одна на основі кирилиці (українська або російська), інша на основі латиниці (англійська).
-
Архітектура застосунка повинна відповідати шаблону MVC.
НЕ допускається використання MVC-фреймворків.
- При реалізації бізнес-логіки необхідно використовувати шаблони проектування: Команда, Стратегія, Фабрика, Будівельник, Сінглтон, Фронт-контролер, Спостерігач, Адаптер та ін.
Використання шаблонів повинно бути обґрунтованим.
-
Використовуючи сервлети і JSP, реалізувати функціональність, наведену в постановці завдання.
-
Використовувати Apache Tomcat у якості контейнера сервлетів.
-
На сторінках JSP застосовувати теги з бібліотеки JSTL та розроблені власні теги (мінімум: один тег custom tag library і один тег tag file).
-
Реалізувати захист від повторної відправки даних на сервер при оновленні сторінки (реалізувати PRG).
-
При розробці використовувати сесії, фільтри, слухачі.
-
У застосунку повинні бути реалізовані аутентифікація і авторизація, розмежування прав доступу користувачів системи до компонентів програми. Шифрування паролів заохочується.
-
Використовувати Впровадити у проект журнал подій із використанням бібліотеки log4j.
-
Код повинен містити коментарі документації (всі класи верхнього рівня, нетривіальні методи і конструктори).
-
Застосунок має бути покритим модульними тестами (мінімальний відсоток покриття 40%). Написання інтеграційних тестів заохочуються.
-
Реалізувати механізм пагінації сторінок з даними.
-
Всі поля введення повинні бути із валідацією даних.
-
Застосунок має коректно реагувати на помилки та виключні ситуації різного роду (кінцевий користувач не повинен бачити stack trace на стороні клієнта).
-
Самостійне розширення постановки задачі по функціональності заохочується (додавання капчі, формування звітів у різних форматах, тощо)!
-
Використання HTML, CSS, JS фреймворків для інтерфейсу користувача (Bootstrap, Materialize, ін.) заохочується!