Разработка каталога сайтов

Техническое задание на разработку системы управления каталогом сайтов

Цель проекта
Создать удобную и безопасную систему для управления категориями и сайтами в каталоге, обеспечивающую добавление, редактирование, удаление данных и управление кэшем.


Требования к системе

1. Авторизация

  • Реализовать защищенную систему входа для администратора.
  • Использовать хеширование паролей (например, алгоритм bcrypt).
  • Защитить систему от brute-force атак с ограничением попыток входа.

2. Управление категориями

  • Возможность создавать новые категории с указанием названия и уникального slug.
  • Редактирование существующих категорий (название, slug).
  • Удаление категорий с предварительным предупреждением и подтверждением действия.

3. Управление сайтами

  • Добавление сайтов в выбранные категории с полями: название, URL, описание, слоган, иконка, изображение.
  • Редактирование данных сайтов, включая замену изображения.
  • Удаление сайтов с подтверждением действия.
  • Обеспечение уникальности названий и URL в рамках одной категории.

4. Кэширование

  • Реализовать механизм очистки кэша для отдельных сайтов, категорий и всей системы.
  • Автоматическая очистка кэша при изменении данных.

5. Безопасность

  • Защитить систему от CSRF-атак с использованием токенов.
  • Валидировать и экранировать все входные данные для защиты от SQL-инъекций и XSS.
  • Использовать подготовленные запросы для работы с базой данных.

6. Интерфейс

  • Разработать административную панель с вкладками для навигации по категориям.
  • Использовать модальные окна для добавления и редактирования данных.
  • Обеспечить интуитивно понятный и адаптивный дизайн.

Технические требования

  • Язык программирования: PHP 8.x
  • База данных: MySQL
  • Фронтенд: HTML5, CSS3, JavaScript
  • Дополнительно:
    • Кросс-браузерная совместимость (Chrome, Firefox, Safari).
    • Оптимизация производительности для работы с большими объемами данных.

Срок выполнения
Разработка и тестирование: 2 недели с даты утверждения ТЗ.


Выполненные задачи

1. Система авторизации

  • Разработана форма входа с использованием сессий для управления доступом.
  • Пароли хранятся в зашифрованном виде с использованием функции password_hash (алгоритм bcrypt).
  • Реализована защита от brute-force атак: после 5 неудачных попыток входа доступ блокируется на 10 минут.

 

2. Управление категориями

  • Создана функциональность добавления категорий с проверкой уникальности slug (допустимы только латинские буквы, цифры и дефисы).
  • Реализовано редактирование и удаление категорий. При удалении отображается модальное окно с запросом первых 8 символов CSRF-токена для подтверждения.

3. Управление сайтами

  • Разработана форма добавления сайтов с валидацией всех полей (URL проверяется на корректность, название — на уникальность в пределах категории).
  • Реализовано редактирование сайтов с возможностью загрузки нового изображения (поддерживаемые форматы: PNG, JPG).
  • Удаление сайтов сопровождается предупреждением и запросом подтверждения через CSRF-токен.

4. Кэширование

  • Созданы функции для очистки кэша:
    • Для конкретного сайта.
    • Для выбранной категории.
    • Для всей системы.
  • При любом изменении данных (добавление, редактирование, удаление) кэш автоматически обновляется.

5. Безопасность

  • Все формы защищены CSRF-токенами, генерируемыми для каждой сессии.
  • Входные данные проходят строгую валидацию и экранирование для предотвращения XSS-атак.
  • Использованы подготовленные запросы PDO для защиты от SQL-инъекций.

6. Интерфейс

  • Разработана панель с вкладками для переключения между категориями.
  • Добавлены модальные окна для создания и редактирования данных.
  • Реализованы раскрывающиеся формы для удобного редактирования существующих записей.
  • Дизайн адаптирован для всех современных браузеров и устройств.

Примененные технологии

  • PHP 8.4: Основной язык разработки, использованы сессии и PDO для работы с базой данных.
  • MySQL: Хранение данных о категориях и сайтах в реляционной базе.
  • JavaScript: Управление клиентской логикой (модальные окна, вкладки, валидация форм).
  • CSS3: Адаптивный дизайн с использованием flexbox и grid.
  • Безопасность: CSRF-токены, хеширование паролей, ограничение попыток входа.

Результат

  • Разработана полнофункциональная административная панель, соответствующая требованиям заказчика.
  • Система протестирована на предмет безопасности и производительности.
  • Интерфейс интуитивно понятен, что минимизирует время обучения администратора.

Главная страница сайта


Страница - категория


Страница с описанием сайта

 


    Ночной режим