Приложение представляет собой систему управления счетами пользователя, переводов средств и валютных обменов. Оно предоставляет функционал для авторизации, просмотра списка счетов, просмотра информации о существующей карте, перевода средств, просмотра истории баланса, мониторинга курса валют и отображения точек банкоматов на карте.
- JavaScript
- Webpack
- Jest
- Cypress
- Sass
- GSAP
- Navigo
Логин: admin
Пароль: admin
Ссылка: https://coin.blackonechik.ru/
Для запуска проекта доступны следующие скрипты:
npm run lint- запуск линтера для проверки кода на соответствие стандартам кодированияnpm run lint:report- запуск линтера с генерацией отчета о проверке кодаnpm run build- сборка проекта в режиме productionnpm run dev- запуск проекта в режиме разработки с автоматической перезагрузкой страницы при изменении кодаnpm run cypress- запуск тестов Cypress
В проекте используются следующие зависимости:
@cubejs-client/core- клиентская библиотека для работы с Cube.jschart.js- библиотека для создания диаграмм и графиковgsap- библиотека для создания анимацийjs-cookie- библиотека для работы с кукиmoment- библиотека для работы с датами и временемnavigo- библиотека для работы с маршрутизацией на клиентеnprogress- библиотека для отображения прогресс-бара при загрузке страницыredom- библиотека для работы с DOMsimple-notify- библиотека для отображения уведомлений
Кроме того, в проекте используются различные зависимости для работы с Webpack, Babel, ESLint, Jest, Cypress, CSS и Sass. Подробнее о них можно узнать в файле package.json.
На экране входа пользователь вводит логин и пароль, после чего авторизуется в системе. При вводе логина и пароля происходит валидация на заполненность полей и длину не менее 6 символов без пробелов. Регистрация пользователей через портал не предусмотрена.
После авторизации пользователь попадает на страницу со списком своих счетов. Здесь отображаются все счета, которыми владеет пользователь, с указанием баланса в рублях. Предусмотрена возможность создания нового счета и сортировки счетов по признакам: «Создать новый счет», «Открыть», «Номер счета», «Баланс», «Время последней транзакции».
На этой странице пользователь может посмотреть информацию о своей карте и совершить перевод средств. Форма переводов содержит поле для ввода счета получателя (с автодополнением из localStorage), поле для ввода суммы перевода и кнопку отправки перевода. Предусмотрена валидация на заполненность полей и ввод положительной суммы. После успешной отправки перевода счет получателя сохраняется в localStorage для дальнейшего использования.
Также на этой странице отображается график истории баланса и список прошлых транзакций. График истории баланса выводит bar chart истории значений баланса данного счета за последние 6 месяцев. Список прошлых транзакций выводит таблицу из 10 (или менее) записей последних транзакций с участием текущего просматриваемого счета. Отрицательные суммы (исходящие переводы) выделяются красным цветом, положительные суммы (входящие переводы) - зеленым цветом.
На этой странице пользователь может посмотреть подробную историю баланса своего счета. График динамики баланса выводит bar chart истории значений баланса данного счета за последние 12 месяцев. Также на этой странице отображается график «Соотношение входящих и исходящих транзакций» и таблица истории переводов. График «Соотношение входящих и исходящих транзакций» выводит раскрашенные частями полоски, красная часть полоски отражает процент расходных (негативных) транзакций в этом столбике, зеленая часть полоски - процент доходных (положительных) транзакций в этом столбике. Таблица истории переводов выводит 25 (или менее) записей последних транзакций с участием текущего просматриваемого счета. Если в истории переводов больше записей, чем 25, тогда вводится механизм постраничного отображения.
Здесь пользователи могут получить информацию о состоянии своих валютных счетов, быть в курсе последних колебаний курса и обменять одну валюту на другую. Список всех известных валют получается из API. При переводе из одной валюты в другую бэкенд может выдать ошибки о недостатке средств валюты списания, эта ошибка обрабатывается. Предусмотрена валидация на запрет перевода отрицательной суммы.
В этом разделе выводится карта с точками, где располагаются банкоматы, где может обслуживать наш банк. Для составления карт используется API Яндекс карт.
Запуск тестов (Cypress)
- Запустите Cypress с помощью команды:
npm run cypress - Нажать в открытом окне E2E Testing и затем выбрать подходящий браузер.
- В открывшемся браузере нажать на интерисующий вас тест.