📅 Основные этапы разработки 1. Начальная настройка и инфраструктура Цель: Зафиксировать базовую структуру проекта и инструменты. Docker Compose Настроить контейнеры для: Бэкенда (Go/Python) Фронтенда (Vite) PostgreSQL (базовая настройка) Убедиться, что проект запускается через docker-compose up. Базовая архитектура Создать папки проекта: frontend/, backend/, docker/. Добавить README.md с инструкцией по запуску. Технологии: Фронт: Vite + HTML/CSS/JS (без фреймворков для упрощения). Бэк: Go/Python (выбрать один, например, Python с FastAPI). БД: PostgreSQL (с возможностью замены на MySQL). 2. Аутентификация и авторизация Цель: Добавить базовую защиту данных. LDAP / OIDC Интеграция с Keycloak (пример: авторизация через Google). Простой middleware для проверки токенов (без сложной логики). Локальная регистрация Добавить форму регистрации/авторизации (без сложных проверок). Технологии: Бэк: JWT (Python: PyJWT, Go: github.com/golang-jwt/jwt). 3. Основной функционал: вишлисты Цель: Реализовать базовые операции с вишлистами. CRUD для вишлистов Создание, редактирование, удаление вишлистов. Хранение в PostgreSQL (таблицы: users, wishlists, items). Функция "Санты" (базовая версия) Алгоритм случайного назначения (без фильтров на первом этапе). Уведомления через email (использовать smtplib или сервисы вроде SendGrid). Технологии: Бэк: FastAPI (Python) или Gin (Go). БД: PostgreSQL (SQL-запросы через ORM). 4. Адаптивный дизайн и соцсети Цель: Упростить интерфейс и добавить экспорт в соцсети. Адаптивный дизайн Использовать CSS-медиа-запросы для мобилы и десктопа. Минималистичный интерфейс (без сложных библиотек). Мини-карточка для соцсетей Генерация HTML-кода для встраивания в Telegram/Instagram. Пример: iframe с подборкой товаров. 5. Дополнительные функции (поэтапно) Цель: Расширить функционал по мере роста навыков. Совместное деление суммы подарка Создать интерфейс для групповых подарков. Интеграция с YooKassa (базовая оплата). Уведомления и чат Добавить WebSocket для уведомлений (например, через socket.io). Аналитика и экспорт Экспорт вишлистов в CSV. Простая статистика (количество подарков, активных пользователей). 🧱 Технологический стек Компонент Технологии Фронтенд Vite, HTML, CSS, JS Бэкенд Python (FastAPI) / Go (Gin) База данных PostgreSQL (MySQL как опция) Деплой Docker Compose, Nginx Аутентификация Keycloak (OIDC), JWT 🕒 Пример графика (приблизительный) Этап Время Достигаемый результат 1 1 месяц Запуск Docker, базовые вишлисты 2 2 месяц Авторизация, функция Санты 3 3 месяц Адаптивный дизайн, мини-карточка 4 4 месяц Групповые подарки, аналитика ⚠️ Примечания для низкого уровня разработки Начните с Docker: Убедитесь, что проект запускается без ошибок. Используйте примеры: Копируйте код из документации (например, FastAPI + PostgreSQL). Опционально: LDAP можно заменить на тестовую регистрацию. Уведомления через email могут быть отложены до этапа 4. 📁 Структура проекта (пример) bash wishlist-app/ ├── frontend/ # Vite + HTML/CSS ├── backend/ # FastAPI/Go │ ├── main.py # Основной файл │ ├── models/ # Базовые ORM модели │ └── routes/ # CRUD для вишлистов ├── docker/ # Docker Compose ├── db/ # SQL-скрипты для PostgreSQL └── README.md # Инструкция по запуску