final project in EPAM
Description Environment: Tomcat 7, JSTL, Derby DB (or any other RDBMS), Log4j.
Разработать WEB-приложение, которое поддерживает заданную функциональность. Требования к реализации следующие:
-
На основе сущностей предметной области создать классы которые им соответствуют.
-
Классы и методы должны иметь названия, которые отражают их функциональность, и должны быть грамотно разнесены по пакетам.
-
Оформление кода должно соответствовать Java Code Convention.
-
Информацию о предметной области хранить в базе данных (в качестве СУБД рекомендуется использовать Apache Derby).
-
Для доступа к данным использовать API JDBC с использованием пула соединений (не допускается использование ORM фреймверков).
-
Приложение должно поддерживать работу с кириллицей (быть многоязычным), в том числе при хранении информации в базе данных:
- должна быть возможность переключения языка интерфейса;
- должна быть поддержка ввода, вывода и хранения информации (в базе данных), записанной на разных языках (см. ниже);
- в качестве поддерживаемых языков выбрать минимум два: один на основе кириллицы, другой на основе латиницы.
-
Архитектура приложения должна соответствовать шаблону MVC (не допускается использование MVC фреймверков).
-
При реализации алгоритмов бизнес-логики использовать шаблоны.
-
Используя сервлеты и JSP, реализовать функциональность, приведенную в постановке задачи.
-
В качестве контейнера сервлетов использовать Apache Tomcat.
-
На страницах JSP применять теги из библиотеки JSTL и разработанные собственные теги (минимум один custom tag library тег и минимум один tag file тег).
-
При разработке использовать сессии, фильтры, слушатели.
-
Использовать журналирование событий с использованием библиотеки Apache Log4j.
-
Код должен содержать комментарии документатора (все классы верхнего уровня, нетривиальные методы и конструкторы).
-
Написать модульные тесты которые по максимуму покрывают функциональность.
Самостоятельное расширение постановки задачи по функциональности приветствуется.
Дополнительно, к требованиям изложенным выше, более чем желательно обеспечить выполнение следующих требований.
- Реализовать разграничение прав доступа пользователей системы к компонентам приложения.
- Реализовать защиту от повторной отправки данных на сервер при обновлении страницы.
- Все поля ввода должны быть с валидацией данных.
Theme: Приемная комиссия
Система имеет перечень Факультетов, для которого необходимо реализовать возможность сортировки:
- по имени(a-z, z-a);
- количеству бюджетных мест,
- общему количеству мест.
Абитуриент регистрируется в системе. Во время регистрации необходимо ввести ФИО, email, город, область, название учебного заведения (опционально: прикрепить скан аттестата с оценками).
Абитуриент может зарегистрироваться на один или несколько факультетов. При регистрации на факультет студент вводит результаты по соответствующим предметам, а так же оценки из аттестата.
Администратор системы владеет правами:
- добавления, удаления или редактирования факультета;
- блокирования или разблокирования абитуриента;
- добавления результатов абитуриентов в Ведомость;
После создания ведомости система подсчитывает сумму баллов и определяет абитуриентов, зачисленных в учебное заведение.
Необходимо добавить оповещение о результате зачисления на email абитуриента.