Final project of EPAM
На странице представлена информация по заданию SummaryTask4.
Задание
Задача сформулирована следующим образом.
Разработать WEB-приложение, которое поддерживает заданную функциональность. Требования к реализации следующие:
- На основе сущностей предметной области создать классы которые им соответствуют.
- Классы и методы должны иметь именования, которые отражают их функциональность, и должны быть грамотно разнесены по пакетам.
- Оформление кода должно соответствовать Java Code Convention.
- Информацию о предметной области хранить в базе данных (в качестве СУБД рекомендуется использовать MYSQL).
- Для доступа к данным использовать API JDBC с использованием пула соединений (не допускается использование ORM Hibernate. Toplink и т.д.).
- Приложение должно поддерживать работу с кириллицей (быть мноrоязычным), в том числе при харнение информации в БД:
- должна быть возможность переключения языка интерфейса;
- должна быть поддержка ввода, вывода и хранения информации (в БД), записанной на разных языках(см. ниже);
- в качестве поддерживаемых языков выбрать минимум два: один на основе кириллицы, другой на основе латиницы.
- Архитектура приложения должна соответствовать шаблону MVC.
- При реализации алгоритмов Бизнес-погики использовать шаблоны.
- Используя сервлеты и JSP, реализовать функциональность, приведенную в постановке задачи.
- B качестве контейнера сервлетов использовать Apache Tomcat.
- На страницах JSP применять теги из библиотеки JSTL и разработанные собственные теги (минимум один сustom tag library тег и минимум один tag file тег).
- При разработке использовать сессии, фильтры, слушатели.
- Использовать журналирование событий с использованием библиотеки Log4j или Logback.
- Код должен содержать комментарии документатора (все классы верхнего уровня, нетривиальные методы и конструкторы).
- Написать модульные тесты которые по максимуму покрывают функциональность.
- Самостоятельное расширение постановки задачи по функциональности приветствуется.
Дополнительно, к требованиям изложенным выше, более чем желательно обеспечить выполнение следующих требований.
- Реализовать разграничение прав доступа пользователей системы к компонентам приложения.
- Реализовать защиту от повторной отправки данных на сервер при обновлении страницы.
- Все поля ввода должны быть с валидацией данных.
Далее идет словесное описание бизнес области (у каждого своя область).
Платежи
Клиент регистрируется в системе и имеет одну или несколько Кредитных карт, каждая из которых соответствует некоторому Счету в системе. Клиент при помощи cчета может осуществить Платеж. Платеж имеет один из двух статусов: 'подготовленный' или 'отправленный'. (Опционально: реализовать возможность генерации pdf-отчета о платеже)
Клиент имеет личный кабинет, в котором может просматривать информацию о своих платежах и счетах.
Необходимо реализовать возможность сортировки:
платежей
- по номеру;
- по дате (от старых к новым, от новых к старым);
счетов
- по номеру;
- по наименованию счета;
- по остатку.
Клиент может пополнить или заблокировать один из своих счетов. Для разблокирования счета клиент должен сделать запрос на разблокирование администратору.
Администратор системы владеет правами:
- блокирования / разблокирования пользователя;
- блокирования / разблокирования одного из счетов пользователя.