jdk2se / simple-shop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание для TypeScript/Vue.js разработчика в Ecwid

Задача

Написать приложение, которое содержит три страницы:

  • страница со списком категорий и продуктов
  • страница продукта
  • страница корзины

Данные

Данные магазина нужно брать, с помощью Ecwid REST API

Проще всего использовать демо-магазин, данные такие:

  • StoreID: 58958138
  • Token: public_7BxbJGWyDaZfSQqjVS5Ftr4jzXkS43UD

Страница «Список продуктов и категорий»

Страница содержит список товаров и категорий в любом удобном виде: сетка, список таблица. Данные для отображения категории:

  • название категории
  • изображение категории

Данные для отображения товара:

  • название товара
  • цена товара
  • изображение товара
  • кнопка «Купить»

Переход на детали категории

При нажатии на категорию приложение переходит на страницу с подкатегориями и товарами, принадлежащими этой категории.

Переход на детали товара

При нажатии на товар приложение переходит на страницу «Детали товара».

Страница «Детали товара»

Страница содержит детали о товаре:

  • названием товара
  • описание товара
  • изображение товара
  • цена товара
  • кнопка «Купить»

Кнопка «Купить»

Кнопка добавляет товар в «корзину» Корзина - любое локальное хранилище со списком добавленных товаров.

Иконка «Корзина»

На всех страница отображается иконка корзины с количеством товаров, добавленных в нее. При нажатии на иконку приложение переходит на страницу «Корзина»

Страница «Корзина»

Страница содержит список добавленных товаров и кнопку «Оформить заказ». Любой товар в списке можно удалить по нажатию на кнопку «Удалить».

Переход по страницам

Состояние страницы отображается в url'е. При переходе по url'е отображается та страница, которая принадлежит этой url'е.

Кнопка «Оформить заказ»

При нажатии на кнопку показывается текст с поздравлением о покупке.

Технологии

  • Typescript
  • VueJS
  • HTML/CSS

TODO

  • слайдер картинок товаров не работает (вынести слайдер в отдельный компонент)
  • не реализованы вложенные категории
  • на любой странице получаем данные всех категорий/продуктов, это не оптимально, все данные не нужны на каждой странице
  • добавить прелоадер

Дизайн

Страницы должны выглядеть приятно и читаемо. Можно воспользоваться любым CSS framework'ом.

About


Languages

Language:Vue 72.8%Language:TypeScript 24.1%Language:HTML 1.2%Language:JavaScript 1.0%Language:CSS 0.9%