Менеджер контактов полезных людей
Реализуйте сервис, в котором пользователь может хранить контакты полезных людей, разбитых по категориям.
Продумайте структуру базы данных для хранения пользователей, категорий и контактов. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции должны выполняться через AJAX-запросы без перезагрузки страницы.
Основные возможности проекта
- Регистрация и авторизация пользователей.
- Список категорий в сайдбаре.
- Таблица контактов выбранной категории.
- Управление категориями: создание, редактирование, удаление (AJAX).
- Управление контактами: создание, редактирование, удаление (AJAX).
- Каждый пользователь видит только свои категории и контакты.
Регистрация и авторизация
На сайте должна быть реализована регистрация и авторизация пользователей:
- Регистрация - форма с полями: логин, email, пароль.
- Авторизация - форма с полями: логин, пароль.
- Каждый пользователь видит только свои категории и контакты.
Сайдбар с категориями
В сайдбаре размещается список категорий пользователя. Каждая категория должна отображаться с названием и кнопками:
- Редактировать - изменение названия категории (AJAX).
- Удалить - удаление категории (с проверкой наличия контактов) (AJAX).
Внизу списка должна быть форма для добавления новой категории (инпут и кнопка "Добавить категорию").
Таблица контактов
При нажатии на категорию в сайдбаре открывается таблица контактов данной категории. Каждая запись должна содержать:
- Имя полезного человека.
- Описание пользы (название профессии или суть услуги).
- Номер телефона.
- Telegram (username).
- Ссылки на социальные сети.
- Кнопки действий: редактировать, удалить.
Добавление контакта
Над таблицей должна быть кнопка "Добавить контакт" и форма с полями:
- Имя (инпут, обязательное поле).
- Описание пользы (инпут).
- Телефон (инпут).
- Telegram (инпут).
- Социальные сети (инпут, можно добавить несколько через разделитель).
- Кнопка "Сохранить".
Редактирование контакта
При нажатии на кнопку "Редактировать" открывается форма (модальное окно или форма на месте), заполненная текущими данными контакта. После редактирования и нажатия на кнопку "Сохранить" запись обновляется через AJAX.
Удаление контакта
При нажатии на кнопку "Удалить" появляется подтверждение (confirm), после чего запись удаляется через AJAX.
Взаимодействие с сервером
Все операции выполняются через AJAX-запросы:
- При загрузке страницы категории и контакты загружаются с сервера.
- При добавлении, редактировании или удалении категории или контакта данные отправляются на сервер, после успешного ответа обновляется интерфейс.
Дополнительные возможности
- Поиск по имени контакта внутри категории.
- Сортировка контактов по имени (алфавитный порядок).