Выполнено с использованием:
- Java 14;
- Spring Boot 2.3.2;
- Spring Data JPA;
- Maven 3.3;
- PostgreSQL 12;
- HTML5/CSS;
Описание:
Конвертер валют, обновляющий информацию о курсах валют по данным центробанка России. Для парса xml использовал DOM, поскольку получаемый с сайта файл не очень большой и его содержание в памяти не бьет сильно по производительности. Функционал: непосредственно конвертер валют, доступный после регистрации и авторизации, история операций (при клике по дате открывается полный курс валют по отношению к рублю за указанную дату), при наведении курсора на строку таблицы в истории всплывающая подсказка сообщит курс целевой валюты по отношению к исходной. В шапке можно посмотреть актуальный курс валют. При конвертации исходная сумма конвертируется в рубли и затем в целевую валюту. Также в базе данных всегда есть запись о рубле (ID='0') для того, чтобы все валюты были доступны из БД по одному методу.
Рекомендации по установке:
В репозитории присутствует директория sql, содержащая 2 скрипта для postgres и не участвующая в сборке. Скрипт datasource_creation_script.sql создает пользователя converter_db_admin с паролем 1Qwerty1 и БД converter_db. Изменяете имя пользователя, пароль или название базы данных - правьте соответствующие свойства в application.yml в ресурсах приложения. Также изначально предполагается, что БД будет создана на локальной машине на порту 5432. Если не так - правьте url базы данных в application.yml. Скрипт create_tables.sql заполняет БД таблицами. Проверено выполнение скриптов командами: psql -U postgres -f your/path/to/database_creation_script.sql - подставить свой путь к 1-ому скрипту; psql -U converter_db_admin -d converter_db -f your/path/to/create_tables.sql - подставить свой путь ко 2-ому скрипту; Собирать как обычное maven-приложение, к примеру, в директории проекта выполнить mvn package, получившийся jar лежит в директории target. Деплоить с соответствии с нуждами, запуск на локальной машине можно произвести командой java -jar currency_converter-0.0.1-SNAPSHOT.jar, приложение будет крутиться на localhost:8080.