PointCatcher — это интерактивное web-приложение на базе Jakarta Faces (JSF),
выполняющее геометрическую проверку попадания точки в заданную область на координатной плоскости.
Результаты сохраняются в базе данных и отображаются в виде таблицы и графика.
Проект реализует типовой стек корпоративных приложений: JSF + JDBC + Gradle/Ant.
Приложение предоставляет web-интерфейс, где пользователь выбирает радиус области R
и задаёт координаты точки (x, y) вручную или кликом по графику.
Серверная часть определяет, попадает ли точка в допустимую область (объединение треугольника, прямоугольника и сектора круга).
Результаты вычислений сохраняются в базе данных, после чего отображаются на странице в таблице и графике.
jsf-webapp-pointcatcher/
├── build.gradle
├── build.xml
├── params.properties
├── src/
│ └── main/
│ ├── java/itmo/web/demo1/
│ │ ├── beans/
│ │ │ ├── AreaCalculator.java
│ │ │ ├── FormBean.java
│ │ │ ├── TableBean.java
│ │ │ ├── PointStats.java
│ │ │ └── MBeanRegistry.java
│ │ ├── database/
│ │ │ ├── DataBaseManager.java
│ │ │ └── models/Point.java
│ │ └── utils/PointHitManager.java
│ ├── webapp/
│ │ ├── faces/
│ │ │ ├── index.xhtml
│ │ │ └── main.xhtml
│ │ ├── resources/
│ │ │ ├── css/
│ │ │ └── js/
│ │ └── WEB-INF/
│ │ ├── web.xml
│ │ └── faces-config.xml
└── settings.gradle
Основные компоненты:
AreaCalculator,PointHitManager— бизнес-логика вычисления попаданий.DataBaseManager— слой доступа к БД (JDBC + PostgreSQL).FormBean,TableBean— JSF Managed Beans для формы и таблицы.index.xhtml,main.xhtml— интерфейс пользователя (JSF Facelets).main.js,index.js— интерактивная логика: обработка кликов, валидация, динамическая перерисовка графика.PointStats,MBeanRegistry— JMX-мониторинг и статистика попаданий.
- Проверка попадания точки
(x, y)в сложную область (треугольник, прямоугольник, сектор круга); - Ввод координат вручную и через клик по графику;
- Отображение результатов на SVG-графике и в таблице;
- Автоматическая валидация входных данных;
- Хранение истории попаданий в PostgreSQL;
- Подсчёт статистики попаданий через JMX (встроенные MBeans);
- Совместимость с Tomcat 10+ (Jakarta EE 9);
- Сборка через Gradle или Ant.
По умолчанию приложение подключается к PostgreSQL:
URL: jdbc:postgresql://localhost:5433/postgres
USER: postgres
PASSWORD: password
Эти параметры можно изменить в классе DataBaseManager
или вынести в переменные окружения при деплое.
# Клонировать репозиторий
git clone https://github.com/e345ee/jsf-webapp-pointcatcher.git
cd jsf-webapp-pointcatcher
# Собрать WAR-файл
./gradlew clean build
# Результат будет в build/libs/server.war# Выполнить цели Ant
ant compile # компиляция исходников
ant build # упаковка в WAR
ant clean # очистка- Убедитесь, что PostgreSQL запущен и доступен по указанному URL.
- Скопируйте скомпилированный
server.warв директориюwebapps/вашего Tomcat. - Запустите сервер (
catalina.sh runилиstartup.bat). - Откройте в браузере:
http://localhost:8080/server/faces/index.xhtml
Садовой Григорий
Software Engineer
Telegram • VK • Email
© 2025 PointCatcher — JSF-based geometric validation web app.