Разработать прототип API сервиса по продаже подписок
Цена договорная
Задача - разработать прототип API сервиса по продаже подписок, а также архитектуру БД, необходимую для хранения информации.
Язык реализации - PHP, СУБД - MySQL/MariaDB
Основные сущности:
* Администратор. Основные атрибуты: Логин, пароль
* Клиент. Основные атрибуты: ID, имя, логин, пароль, email, дата регистрации, баланс счёта;
* Тариф. Основные атрибуты: ID, название, стоимость при оплате за 1, 3, 6 и 12 месяцев, флаг актуальности
* Подписка клиента. Основные атрибуты: ID клиента, ID тарифа, дата+время создания, дата+время окончания, флаг заморозки
Минимальный функционал:
Для администратора:
* Вход в систему (параметры - логин, пароль). Ответ (при успешном входе) должен содержать токен авторизации, который затем добавляется в качестве параметра во все нижеследующие запросы.
* Выход из системы (после этого токен авторизации из предыдущего пункта становится невалидным)
* Получить список существующих тарифов со всеми атрибутами
* Добавить новый тариф (параметры - название, стоимости при оплате за 1/3/6/12 месяцев)
* Изменить флаг актуальности тарифа. На неактуальные тарифы клиенты не могут подписаться, однако существующие подписки продолжают действовать до их окончания.
* Получить список всех клиентов (ID, имя, логин, email, дата регистрации, баланс, общее число подписок, число работающих подписок)
* Получить информацию о клиенте (параметр - ID клиента, результат - вся информация из предыдущего пункта, а также массив с данными обо всех подписках клиента)
* Получить список клиентов, подписанных на заданный тариф, чьи подписки не истекли (но могут быть заморожены). Параметр - ID тарифа.
Для клиента:
* Регистрация нового клиента (параметры - имя, логин, пароль, email)
* Вход в систему (параметры - логин, пароль). Ответ (при успешном входе) должен содержать токен авторизации, который затем добавляется в качестве параметра во все нижеследующие запросы.
* Выход из системы (после этого токен авторизации из предыдущего пункта становится невалидным)
* Пополнение баланса (параметр - токен оплаты, в тестовом задании можно использовать статичные токены для увеличения баланса на 1, 10, 50 и 100 единиц)
* Запрос баланса
* Получение списка актуальных тарифов
* Получение списка всех своих подписок
* Получение списка своих работающих подписок (не окончившихся и не замороженных)
* Новая подписка на тариф (параметры - ID тарифа, период оплаты (1, 3, 6 или 12 месяцев)). Выполняется при наличии нужной суммы на балансе (после чего эта сумма списывается).
* Заморозка подписки.
* Разморозка подписки. При разморозке дата окончания продлевается на число полных суток, которые подписка была заморожена.
* Отмена подписки. При отмене на баланс должны возвращаться средства в размере: (уплаченная за подписку сумма)/(число оплаченных дней)*(число полных суток до окончания подписки). В случае, если отменяемая подписка заморожена, расчёт производится так, как если бы она была разморожена непосредственно перед отменой.
* Запрос истории изменений баланса. Информация о каждом изменении должна содержать дату+время, сумму, комментарий о сути операции (оплата с названием тарифа, пополнение, возврат)
Всё взаимодействие с сервисом должно осуществляться посредством передачи JSON-объектов.
Ответ должен всегда содержать строковое поле result со значением OK, если действие проведено успешно, или error, если произошла та или иная ошибка. В случае ошибки ответ также должен содержать строковое поле error с кратким описанием сути ошибки.
Логин и пароль администратора можно задать статически на своё усмотрение.
Система должна также содержать скрипт для развёртывания необходимых таблиц в БД.
Система должна быть устойчива к получению неверно или злонамеренно сформированных запросов.
Приветствуется наличие документации с кратким описанием функций и их параметров.
Язык реализации - PHP, СУБД - MySQL/MariaDB
Основные сущности:
* Администратор. Основные атрибуты: Логин, пароль
* Клиент. Основные атрибуты: ID, имя, логин, пароль, email, дата регистрации, баланс счёта;
* Тариф. Основные атрибуты: ID, название, стоимость при оплате за 1, 3, 6 и 12 месяцев, флаг актуальности
* Подписка клиента. Основные атрибуты: ID клиента, ID тарифа, дата+время создания, дата+время окончания, флаг заморозки
Минимальный функционал:
Для администратора:
* Вход в систему (параметры - логин, пароль). Ответ (при успешном входе) должен содержать токен авторизации, который затем добавляется в качестве параметра во все нижеследующие запросы.
* Выход из системы (после этого токен авторизации из предыдущего пункта становится невалидным)
* Получить список существующих тарифов со всеми атрибутами
* Добавить новый тариф (параметры - название, стоимости при оплате за 1/3/6/12 месяцев)
* Изменить флаг актуальности тарифа. На неактуальные тарифы клиенты не могут подписаться, однако существующие подписки продолжают действовать до их окончания.
* Получить список всех клиентов (ID, имя, логин, email, дата регистрации, баланс, общее число подписок, число работающих подписок)
* Получить информацию о клиенте (параметр - ID клиента, результат - вся информация из предыдущего пункта, а также массив с данными обо всех подписках клиента)
* Получить список клиентов, подписанных на заданный тариф, чьи подписки не истекли (но могут быть заморожены). Параметр - ID тарифа.
Для клиента:
* Регистрация нового клиента (параметры - имя, логин, пароль, email)
* Вход в систему (параметры - логин, пароль). Ответ (при успешном входе) должен содержать токен авторизации, который затем добавляется в качестве параметра во все нижеследующие запросы.
* Выход из системы (после этого токен авторизации из предыдущего пункта становится невалидным)
* Пополнение баланса (параметр - токен оплаты, в тестовом задании можно использовать статичные токены для увеличения баланса на 1, 10, 50 и 100 единиц)
* Запрос баланса
* Получение списка актуальных тарифов
* Получение списка всех своих подписок
* Получение списка своих работающих подписок (не окончившихся и не замороженных)
* Новая подписка на тариф (параметры - ID тарифа, период оплаты (1, 3, 6 или 12 месяцев)). Выполняется при наличии нужной суммы на балансе (после чего эта сумма списывается).
* Заморозка подписки.
* Разморозка подписки. При разморозке дата окончания продлевается на число полных суток, которые подписка была заморожена.
* Отмена подписки. При отмене на баланс должны возвращаться средства в размере: (уплаченная за подписку сумма)/(число оплаченных дней)*(число полных суток до окончания подписки). В случае, если отменяемая подписка заморожена, расчёт производится так, как если бы она была разморожена непосредственно перед отменой.
* Запрос истории изменений баланса. Информация о каждом изменении должна содержать дату+время, сумму, комментарий о сути операции (оплата с названием тарифа, пополнение, возврат)
Всё взаимодействие с сервисом должно осуществляться посредством передачи JSON-объектов.
Ответ должен всегда содержать строковое поле result со значением OK, если действие проведено успешно, или error, если произошла та или иная ошибка. В случае ошибки ответ также должен содержать строковое поле error с кратким описанием сути ошибки.
Логин и пароль администратора можно задать статически на своё усмотрение.
Система должна также содержать скрипт для развёртывания необходимых таблиц в БД.
Система должна быть устойчива к получению неверно или злонамеренно сформированных запросов.
Приветствуется наличие документации с кратким описанием функций и их параметров.
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.
адекватная цена, рекомендую