Проектная работа «Личный кабинет клиента» | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Backend-разработчик на PHP Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Symfony Framework Unity Game Developer. Basic JavaScript Developer. Professional Android Developer. Basic JavaScript Developer. Basic Java Developer. Professional Highload Architect Reverse-Engineering. Professional Java Developer. Basic Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect MS SQL Server Developer Разработчик программных роботов (RPA) на базе UiPath и PIX Разработчик голосовых ассистентов и чат-ботов Administrator Linux. Advanced Infrastructure as a code Супер-практикум по использованию и настройке GIT Administrator Linux.Basic Экспресс-курс «IaC Ansible» Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Основы Windows Server
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Проектная работа «Личный кабинет клиента»

Spring_Deep_27.4-5020-680ae0.png

Предлагаем вашему вниманию очередную проектную работу по курсу «Разработчик на Spring Framework». Её выполнил Пётр Виличинский, выпускник группы 2019 года. Используя знания, полученные на курсе, он создал Личный кабинет клиентов.

Как сказал сам Пётр, основные цели проекта были следующие: — разобраться с моментами, пропущенными при выполнении ДЗ; — сделать полноценное приложение, максимально приближенное к использованию в реальной жизни и работающее по принципу «Бери и пользуйся»; — задействовать микросервисы; — разместить один из микросервисов на нескольких узлах; — в итоге получить портфолио по Spring.

Особенности и применение

Личный кабинет — это приложение для клиентов предприятия, с которыми есть договорные отношения на постоянной основе. В ЛК клиент может увидеть свой баланс, начисления, оплаты. Также у клиента есть возможность оставлять заявки и видеть принятые по ним решения. Присутствует система уведомлений клиентов по электронной почте и sms.

Основная задача приложения ЛК — показ клиенту информации по его договорам, и эта информация должна быть передана в приложение ЛК сторонней системой (АСР, биллинг, 1C) через API приложения. Другой вариант интеграции с ЛК — набор скриптов, которые получают из БД приложения по API всех клиентов, предоставляемые им услуги, баланс и на основании этих данных производят начисления, выставляют счета, шлют уведомления, опять же, через API приложения.

Примеры использования: — кабельное ТВ: ежемесячная абонплата, подключение, ремонт и настройка; — офисный центр: сдача в аренду офисов, предоставление интернета и телефонии, уборка помещений, офисная мебель и техника в аренду; — и многие другие…

Автору работы выбор этой темы именно для выпускной работы по Spring framework показался удачным потому, что в силу своей специфики приложение требует минимума интерактивного взаимодействия с пользователем в браузере и позволяет больше времени посвятить разработке backend.

Технологии и конфигурация

При реализации проектной работы были использованы следующие технологии:

  • Spring Boot;
  • Data JPA + Hibernate + Liquibase + Postgres/H2;
  • Rest controller для API и UI;
  • UI: Ajax/SPA, Vue.js и jQuery;
  • Spring Security: form-based для UI и Basic для API;
  • Spring Integration для уведомлений клиентов по почте (Spring Mail) и СМС;
  • Config server, Eureka и Feign;
  • Spring Shell в примерах работы с API;
  • Docker.

Также обратите внимание на компоненты:

1-20219-812444.png

Ниже представлена ER-диаграмма предметной области проекта (тут небольшая реклама сервиса https://dbdiagram.io/ читателям на заметку — он отлично и бесплатно строит подобные диаграммы по тексту DDL). Во время работы автора постоянно преследовала мысль, что для выпускного проекта такое количество сущностей — многовато, ведь включение в API и написание юнит-тестов для каждой из них требует времени и при этом не приносит новых знаний и опыта. Но получилась хорошая демонстрация, как Spring framework помогает ускорить и упростить разработку.

Рисунок1-20219-be1921.png

Интересным моментом в проекте была попытка совместить в одном проекте двух видов авторизации: form-based и http-basic. Для авторизации пользователей — клиентов ЛК был выбран тип form-based. Но "системные" endpoint'ы типа actuator'а тоже должны быть защищены от неавторизованного доступа, и в то же время form-based авторизация для них не очень подходит.

Посмотреть подробности реализации проектной работы “Личный кабинет клиента” можно по ссылке на GitHub. Автору работы можно написать по адресу p913@yandex.ru.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться