Описание интернет-магазина из тестового задания

Опубликовал тестовое задание про интернет-магазин. По условиям задания, авторизация не требуется и пользователи могут добавлять и удалять товары, редактировать каталог и совершать покупки.

Описание программы

Общие сведения

Программа написана в netbeans 7.3 на базе php-фреймворка symfony2, ORM-фреймворка doctrine2, css-фреймворка bootstrap 3 и javascript-библиотеки jQuery 1.

Тестирование проводилось под Linux (CentOS 6.4) с php 5.3.3, apache 2.2, mysql 5.1.

Исходный код доступен на github.

Поддерживается работа в основных десктопных (ie8+) и мобильных браузерах.

Технологические особенности

CRUD-действия с большинством сущностей (пользователи, корзины, товары, категории) можно осуществлять через RESTful-сервисы.

Установка

Установка описана на github.

Демо-версия

Демо-версия временно доступна на сайте: http://live.psu.ru/shop/app_dev.php/api/catalog/1. Можете добавлять или редактировать контент, покупать что угодно.

Использование программы

Каталог

Когда пользователь заходит на сайт, он видит развернутый каталог в левом меню, все товары из текущего каталога и случайных 12 товаров, размещенных во всех вложенных папках (категориях) от текущего каталога.


При перемещении по каталогу в левом меню, происходит AJAX-подгрузка товаров. По возможности, выставляется правильная ссылка на каталог через HTML5 History API.

Перейти к редактированию открытого каталога можно по кнопке настроек. В этой же области размещена ссылка на каталог более высокого уровня:


Создание нового каталога осуществляется из консоли управления (снизу экрана).

Товары

Перемещение товара в корзину осуществляется нажатием зеленой кнопки на виджете товара. В виду отсутствия требования подробного описания товара в ТЗ, товар не кликабелен и дополнительной информации кроме названия не содержит. Перейти в режим редактирования товара можно по клику иконки настроек:

Корзина

При нажатии кнопки перемещения товара в корзину, товар и корзина сохраняются в локальном хранилище браузера. Для совершения покупки пользователь должен кликнуть на корзину в верхнем меню.

Всплывет окно с товарами в корзине, в котором новому пользователю надо будет ввести фамилию и телефон. При клике на кнопке "Купить", через AJAX произойдет регистрация пользователя и последующая отправка товаров из корзины на сервер.


Особенности:

1) Так как корзина хранится в локальном хранилище браузера, закрытие браузера не приведет к потере товаров в корзине.
2) У пользователя только одна корзина, когда он отсылает новые товары под тем-же логином, он редактирует уже существующий набор.

Комментарии

Популярные сообщения из этого блога

Обзор почтового клиента Pronto Pro!

Подключаем ZFS over iSCSI на Oracle Linux 8 (CentOS) в Proxmox

Архитектура катастрофоустойчивого сервиса