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