Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 5.94 KB

README.md

File metadata and controls

60 lines (45 loc) · 5.94 KB

PaymentSYSTEM

Final project of EPAM

На странице представлена информация по заданию SummaryTask4.

Задание

Задача сформулирована следующим образом.

Разработать WEB-приложение, которое поддерживает заданную функциональность. Требования к реализации следующие:

  1. На основе сущностей предметной области создать классы которые им соответствуют.
  2. Классы и методы должны иметь именования, которые отражают их функциональность, и должны быть грамотно разнесены по пакетам.
  3. Оформление кода должно соответствовать Java Code Convention.
  4. Информацию о предметной области хранить в базе данных (в качестве СУБД рекомендуется использовать MYSQL).
  5. Для доступа к данным использовать API JDBC с использованием пула соединений (не допускается использование ORM Hibernate. Toplink и т.д.).
  6. Приложение должно поддерживать работу с кириллицей (быть мноrоязычным), в том числе при харнение информации в БД:
  • должна быть возможность переключения языка интерфейса;
  • должна быть поддержка ввода, вывода и хранения информации (в БД), записанной на разных языках(см. ниже);
  • в качестве поддерживаемых языков выбрать минимум два: один на основе кириллицы, другой на основе латиницы.
  1. Архитектура приложения должна соответствовать шаблону MVC.
  2. При реализации алгоритмов Бизнес-погики использовать шаблоны.
  3. Используя сервлеты и JSP, реализовать функциональность, приведенную в постановке задачи.
  4. B качестве контейнера сервлетов использовать Apache Tomcat.
  5. На страницах JSP применять теги из библиотеки JSTL и разработанные собственные теги (минимум один сustom tag library тег и минимум один tag file тег).
  6. При разработке использовать сессии, фильтры, слушатели.
  7. Использовать журналирование событий с использованием библиотеки Log4j или Logback.
  8. Код должен содержать комментарии документатора (все классы верхнего уровня, нетривиальные методы и конструкторы).
  9. Написать модульные тесты которые по максимуму покрывают функциональность.
  10. Самостоятельное расширение постановки задачи по функциональности приветствуется.

Дополнительно, к требованиям изложенным выше, более чем желательно обеспечить выполнение следующих требований.

  1. Реализовать разграничение прав доступа пользователей системы к компонентам приложения.
  2. Реализовать защиту от повторной отправки данных на сервер при обновлении страницы.
  3. Все поля ввода должны быть с валидацией данных.

Далее идет словесное описание бизнес области (у каждого своя область).

Платежи

Клиент регистрируется в системе и имеет одну или несколько Кредитных карт, каждая из которых соответствует некоторому Счету в системе. Клиент при помощи cчета может осуществить Платеж. Платеж имеет один из двух статусов: 'подготовленный' или 'отправленный'. (Опционально: реализовать возможность генерации pdf-отчета о платеже)

Клиент имеет личный кабинет, в котором может просматривать информацию о своих платежах и счетах.

Необходимо реализовать возможность сортировки:

платежей

  • по номеру;
  • по дате (от старых к новым, от новых к старым);

счетов

  • по номеру;
  • по наименованию счета;
  • по остатку.

Клиент может пополнить или заблокировать один из своих счетов. Для разблокирования счета клиент должен сделать запрос на разблокирование администратору.

Администратор системы владеет правами:

  • блокирования / разблокирования пользователя;
  • блокирования / разблокирования одного из счетов пользователя.