Тестовое задание на должность PHP-программиста
Нужно организовать добавление и просмотр пользователей и их адресов на PHP+MySQL с использованием Phalcon framework.
Предварительное задание - Установить Phalcon Framework на сервер.
Основное задание - сделать 4 страницы, которые будут обеспечивать управление пользователями и их адресами:
Страница #1 (Главная, отображает список пользователей):
Страница отображает список добавленных пользователей. По клику на одного из списка пользователей, мы должны попасть на страницу #3 (см ниже) и управлять его адресами со страницы #3
Страница #2 (Добавить нового пользователя)
Страница позволяет добавить нового пользователя в базу
Форма для добавления новых пользователей в бд должна иметь:
Firstname, Lastname, Email, User type(admin, client), Password.
Таблица в бд(user): user_id, firstname, lastname, email, user_type, password, created_at.
email - unique.
Пользователи валидируются и сохраняются в базу.
Если валидация не прошла - отображаются ошибки.
Страница #3 (Адреса выбранного пользователя)
На этой странице отображается список со всеми адресами конкретного пользователя, с возможностью удалить каждый из адресов. Кроме того, должна быть форма с добавлением адресов для текущего пользователя в бд.
В форме:
User(select using the list of users), City, Postcode, Region, Street.
Таблица в бд (address): address_id, user_id, city, postcode, region, street.
user_id - foreign key "user" (user_id).
Адреса сохраняются в базу.
Страница #4 (Просмотр списка всех адресов в базе)
Таблица с просмотров адресов. Можно смотреть как весь список так и по конкретным пользователям — фильтр по пользователям в виде select
Для загрузки списка данных на страницу желательно использавть ajax.
ДЛЯ СОХРАНЕНИЯ ВСЕХ ДАННЫХ В БД ДОЛЖНЫ ИСПОЛЬЗОВАТЬСЯ МОДЕЛИ Phalcon PHP
Критерии оценки
Внешний вид страницы не оценивается
Грамотное применение MVC, ООП.
Код-стайл и соблюдение стандартов
Требования:
Использвать Phalcon PHP.
Использвать jQuery.
Таблицы в должны быть связаны внешним ключем.
Дополнительно задание:
1.На странице 4(Просмотр всех адресов) сделать пагинацию.
2.Написать апи по которому ТОЛЬКО администраторы могут выбирать списки пользователей. Если передается "user_id" возвращать только по одному пользователю.
url - base_url/api/userslist
url - base_url/api/userslist/:user_id
POST DATA: email, password