5.6 KiB
📅 Основные этапы разработки
- Начальная настройка и инфраструктура
Цель: Зафиксировать базовую структуру проекта и инструменты.
Docker Compose
Настроить контейнеры для:
Бэкенда (Go/Python)
Фронтенда (Vite)
PostgreSQL (базовая настройка)
Убедиться, что проект запускается через docker-compose up.
Базовая архитектура
Создать папки проекта: frontend/, backend/, docker/.
Добавить README.md с инструкцией по запуску.
Технологии:
Фронт: Vite + HTML/CSS/JS (без фреймворков для упрощения).
Бэк: Go/Python (выбрать один, например, Python с FastAPI).
БД: PostgreSQL (с возможностью замены на MySQL).
- Аутентификация и авторизация
Цель: Добавить базовую защиту данных.
LDAP / OIDC
Интеграция с Keycloak (пример: авторизация через Google).
Простой middleware для проверки токенов (без сложной логики).
Локальная регистрация
Добавить форму регистрации/авторизации (без сложных проверок).
Технологии:
Бэк: JWT (Python: PyJWT, Go: github.com/golang-jwt/jwt).
- Основной функционал: вишлисты
Цель: Реализовать базовые операции с вишлистами.
CRUD для вишлистов
Создание, редактирование, удаление вишлистов.
Хранение в PostgreSQL (таблицы: users, wishlists, items).
Функция "Санты" (базовая версия)
Алгоритм случайного назначения (без фильтров на первом этапе).
Уведомления через email (использовать smtplib или сервисы вроде SendGrid).
Технологии:
Бэк: FastAPI (Python) или Gin (Go).
БД: PostgreSQL (SQL-запросы через ORM).
- Адаптивный дизайн и соцсети
Цель: Упростить интерфейс и добавить экспорт в соцсети.
Адаптивный дизайн
Использовать CSS-медиа-запросы для мобилы и десктопа.
Минималистичный интерфейс (без сложных библиотек).
Мини-карточка для соцсетей
Генерация HTML-кода для встраивания в Telegram/Instagram.
Пример: iframe с подборкой товаров.
- Дополнительные функции (поэтапно)
Цель: Расширить функционал по мере роста навыков.
Совместное деление суммы подарка
Создать интерфейс для групповых подарков.
Интеграция с 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 # Инструкция по запуску