103 lines
5.6 KiB
Markdown
103 lines
5.6 KiB
Markdown
📅 Основные этапы разработки
|
||
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 # Инструкция по запуску
|