Разработал full‑stack веб‑приложение для размещения и поиска предложений с геокоординатами на интерактивной карте. Приложение обеспечивает удобное создание, хранение и визуализацию объявлений, фильтрацию по месту и параметрам, а также быстрый отклик пользователей.
Задачи и обязанности
Проектирование архитектуры приложения (frontend + backend + база данных).
Реализация клиентской части на React + Next.js с компонентной системой на shadcn/ui и стилями на Tailwind CSS.
Интеграция интерактивной карты с MapLibre для отображения и кластеризации геометок.
Управление состоянием приложения с помощью Zustand (фильтры, текущая область карты, UI‑состояние).
Работа с базой данных PostgreSQL: проектирование схемы, миграции и оптимизация запросов.
Реализация слоя доступа к данным и миграций через Drizzle (типобезопасный ORM).
CRUD‑функции для размещения предложений, валидация координат и привязка к пользователям/метаданным.
Серверная логика (API роуты в Next.js) для операций с предложениями и агрегирования данных для карты.
Обеспечение производительности при загрузке множества меток (кэширование, ленивые загрузки, кластеризация).
Тестирование ключевых сценариев и отладка интеграции картографических данных.
Технический стек
Frontend: React, Next.js, shadcn/ui, Tailwind CSS
Состояние: Zustand
База данных: PostgreSQL
ORM / слой данных: Drizzle
Карты: MapLibre
Инфраструктура: серверные API в Next.js, деплой и конфигурация окружений