Задача

Разработать с нуля веб-сайт, который полностью повторяет функционал эталонного проекта (указанного заказчиком в переписке). При этом дизайн и пользовательский интерфейс должны быть уникальными, отличаться от оригинала.

Основной функционал

  • Личный кабинет пользователя с возможностью регистрации, авторизации, управления данными и историей покупок
  • Административная панель для управления сайтом, пользователями, финансовыми операциями и контентом
  • Система покупки виртуальных полей (каждое поле привязано к географическим или иным данным на карте)
  • Интеграция с платежным шлюзом (эквайринг) для приема оплат
  • Интерактивная карта, на которой отображаются поля и их статус (свободно/занято/в обработке)
  • Фильтрация и поиск по карте или списку полей
  • Динамическое обновление статуса полей при покупке
  • Уведомления пользователей о сделках (по email или в личном кабинете)
  • Базовая отчетность по продажам и геоданным (для администратора)

Требования к интерфейсу

  • Современный, адаптивный дизайн - все элементы корректно отображаются на десктопе, планшете и мобильных устройствах
  • Удобная навигация, понятный UX (чтобы пользователь без инструкции мог купить поле)
  • Чистый код без сторонних библиотек (кроме agreed заранее, например, карта на Leaflet или аналоги)
  • Минималистичный, профессиональный визуал без перегруженности - вся сложность в функционале, а не в графике

Технические особенности

  • Верстка: HTML + CSS + JavaScript (без фреймворков для чистоты или по согласованию с заказчиком)
  • Бэкенд: предпочтительно на Python (FastAPI или Flask) или Node.js, обсуждается с исполнителем
  • Базы данных: PostgreSQL или MySQL, с проектированием схемы, оптимизированной под географические запросы
  • Безопасность: защита от типовых атак (SQL-инъекции, XSS), шифрование паролей, сессии контроль

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

  • Рабочий прототип с опубликованным минимальным контентом
  • Исходный код репозитория с инструкцией по развертыванию
  • Документация по API (автоматически или в формате Readme)