Я прошла курс "Full Stack: Angular and Java Spring Boot E-Commerce Website" на платформе Udemy.com.
Процесс прохождения:
- занятия №6-28 - Основы TypeScript;
- занятия №29-44 - Основы Angular;
- занятия №44-325 - этот репозиторий.
Результат проекта - интернет-магазин . Название магазина - это отсылка к названию сайта преподавателя luv2code.com и фразе "I love to code", которую он периодически повторяет во время занятий 😄
Использованные технологии: Java 11, Apache Maven, Hibernate, Spring Core, Spring Data, Spring REST, Spring Boot, Spring Security, TypeScript, Angular, Okta, Stripe.
Честно говоря, при всей моей любви к преподавателю Chad Darby, этот курс меня несколько разочаровал. Моими основными целями при покупке курса были: ещё раз потренироваться писать web-сервисы на Spring Boot и поднять мой уровень знаний по Spring Security, в котором я откровенно "плаваю". Однако, 80% времени мы писали frontend на Angular, а на стороне backend практически всё делал Spring REST. На уровне security использовался бесплатный облачный сервис okta.com, который, с небольшими настройками от разработчика, сам управлял защитой приложения. При этом, в работе Angular я разобралась только в общих чертах. Если возникнет необходимость писать frontend, нужно будет брать другой, более полный курс.
То есть, и fullstack-разработчиком я не стала, и знания в backend-разработке практически не расширила 😐
Единственное, что меня действительно порадовало в курсе - это опыт работы с платёжной системой Stripe. Разумеется, работа велась в тестовом режиме. Но, тем не менее, это было познавательно.
Для старта приложения нужно запустить и frontend на Angular (командой npm start), и backend на Java (через метод main). Приложение разворачивается в контекстном пути https://localhost:4200
В магазине четыре категории товаров: книги, кружки, коврики для мыши, багажные бирки. Всего 100 товаров, по 25 каждого вида. Все данные по товарам (SQL-скрипт с описаниями, картинки) предоставил преподаватель. Работает паджинация, изменение количества товаров на странице, поиск товаров по всей базе. Товары в корзину можно добавить как с главной страницы, так и со страницы описания товара.
Могу предположить, что для подготовки базы данных преподаватель собрал средние цены на товары в американских магазинах. И меня поразило, что у них багажные бирки стоят ненамного дешевле, чем книги - $16.99 😳 Это ведь, по сути, картонка с верёвочкой, которую цепляют на чемодан!
Зарегистрироваться на сайте самостоятельно нельзя, регистрация нового пользователя производится администратором через сервис okta.com. Идентификация уникального пользователя ведётся по полю email. Авторизация никаких особых преимуществ пользователю не даёт: появляется персональное приветствие и две новых кнопки на панели. Кнопка "Member", по идее, должна предоставлять скидки, акции и персональные предложения, но этот функционал не разрабатывался. Поэтому по нажатию кнопки появляется только обещание будущих преимуществ 😏 По нажатию на кнопку "Orders" можно увидеть историю заказов.
При этом, заказ на свой email можно оформить и без авторизации, всё равно он впоследствии появится в истории заказов.
Содержимое корзины можно редактировать: добавлять/удалять товары, увеличивать/уменьшать количество единиц товара. При оформлении заказа все поля формы обязательны для заполнения, ведётся валидация. Страну и административную единицу (state) нужно выбирать из выпадающего списка, причём содержимое поля state зависит от выбранной страны в поле country. Список стран и их административных единиц предоставил преподаватель, я от себя добавила Беларусь с её областями. В форме есть два адреса для заполнения: адрес доставки и адрес для отправки счёта (если я правильно поняла, что такое Billing Address). Адреса могут быть разными, или же есть возможность сделать их одинаковыми путём проставления одной галочки ✔️ Имитация оплаты происходит через платёжную систему Stripe путём введения тестового номера карты. После успешного завершения оплаты возвращается номер отслеживания заказа (случайно сгенерированный UUID). Этот же номер остаётся в истории заказов.
Из платёжного сервиса Stripe есть возможность отправить чек на email. В тестовом режиме отправку нужно осуществлять вручную. В случае проведения настоящего заказа с реальной оплатой чек будет высылаться автоматически (если верить преподавателю).
После окончания курса, в целях обеспечения безопасности своих персональных данных, я отключила поддержку приложения на okta.com, и удалила аккаунт на Stripe. Последнее действие связано также с тем, что мне регулярно приходят письма от них с предложениями лучших тарифов для моего онлайн-бизнеса 😆