Files
2026-08-18 20:38:42 +03:00

103 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
📅 Основные этапы разработки
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 # Инструкция по запуску