Тестовое задание для младшего программиста

Представьте, что вам нужно реализовать модуль приема отзывов от посетителей сайта. Отзывы разделяются по категориям. Администратор сайта может редактировать список категорий - добавлять, редактировать название существующих категорий, удалять их. Форма приема отзывов состоит из полей: Ф.И.О. (тип текст), Email (тип email), Категория отзыва (выпадающий список, можно выбрать несколько категорий), Текст отзыва (текстовое поле). Все поля обязательны для заполнения. После успешной отправки, результаты заполнения сохраняются в базу.

  1. Спроектируйте SQL базу для хранения требуемых модулю данных (категории, отзывы) на сайте http://dbdsgnr.appspot.com/app (или любом подобном) со всеми требуемыми связками между таблицами. Результат проектирования (скриншот) будет результатом выполнения этого этапа Тестового Задания.
  2. Реализуйте страницу добавления отзыва на основании спроектированной вами базы (строго на PHP, можно использовать PHP фреймворк). Остальной функционал реализовывать не надо. Страница не должна выглядеть страшно :). Требуется валидация данных на клиентской (можно использовать JS библиотеки) и серверной сторонах, добавление результатов формы в БД. Исходный код и дамп базы данных будет результатом выполнения этого этапа Задания.

Сохраните скриншот из п.1 и архив из п.2 на облачный сервис (Яндекс.Диск, Dropbox) и пришлите ссылку через форму ниже.