138 lines
4.8 KiB
Markdown
138 lines
4.8 KiB
Markdown
# 🎯 Wish Board — Доска желаний
|
||
|
||
Интерактивная доска желаний с drag & drop, real-time синхронизацией и расширенным функционалом для планирования покупок.
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
```bash
|
||
# Клонировать
|
||
git clone <url>
|
||
cd wish-board
|
||
|
||
# Установить зависимости
|
||
pip install -r requirements.txt
|
||
|
||
# Запустить сервер
|
||
python server.py
|
||
|
||
# Открыть http://localhost:4000
|
||
```
|
||
|
||
## ✨ MVP+ Функционал
|
||
|
||
### Базовый функционал
|
||
- ✅ Доски с цветами
|
||
- ✅ Списки (TODO/Doing/Done)
|
||
- ✅ Карточки с drag & drop
|
||
- ✅ Real-time синхронизация через WebSocket
|
||
- ✅ SQLite для хранения данных
|
||
|
||
### MVP+ Функционал
|
||
- 🖼️ **Изображения товаров** — добавление фото в карточку
|
||
- 💰 **Цена** — указание стоимости товара
|
||
- 🔗 **Ссылка на товар** — прямая ссылка на страницу покупки
|
||
- 💬 **Комментарии** — заметки и мысли по поводу товара
|
||
- 📊 **Статусы** — хочу / в процессе / куплено / отложено
|
||
- 🏷️ **Категории** — группировка по типам (электроника, одежда, книги и т.д.)
|
||
- ⭐ **Рейтинг желаемости** — оценка от 1 до 5 звёзд
|
||
- 📁 **Архив** — скрытие купленных товаров из основного вида
|
||
- 📈 **Статистика** — общая сумма желаний, количество по статусам
|
||
- 💾 **Автосохранение** — все изменения сохраняются в реальном времени
|
||
|
||
## 🛠️ Технологии
|
||
|
||
- **Backend:** Python 3.11+, FastAPI, SQLite, WebSocket
|
||
- **Frontend:** HTML5, Tailwind CSS, Vanilla JS
|
||
- **Real-time:** WebSocket (FastAPI)
|
||
- **Storage:** SQLite (WAL mode)
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
wish-board/
|
||
├── server.py # FastAPI сервер с API
|
||
├── index.html # Frontend (SPA)
|
||
├── requirements.txt # Зависимости Python
|
||
├── README.md # Документация
|
||
└── wish.db # База данных (SQLite)
|
||
```
|
||
|
||
## 🗄️ База данных
|
||
|
||
### Таблицы
|
||
|
||
**boards** — доски
|
||
- `id` — уникальный идентификатор
|
||
- `name` — название доски
|
||
- `color` — цвет доски (hex)
|
||
- `created_at` — дата создания
|
||
|
||
**lists** — списки на доске
|
||
- `id` — уникальный идентификатор
|
||
- `board_id` — связь с доской
|
||
- `title` — название списка
|
||
- `position` — порядок отображения
|
||
|
||
**cards** — карточки товаров
|
||
- `id` — уникальный идентификатор
|
||
- `list_id` — привязка к списку
|
||
- `board_id` — привязка к доске
|
||
- `title` — название товара
|
||
- `description` — описание
|
||
- `image_url` — URL изображения
|
||
- `price` — цена (float)
|
||
- `url` — ссылка на товар
|
||
- `status` — статус (want/in_progress/bought/deferred)
|
||
- `category` — категория
|
||
- `rating` — рейтинг желаемости (1-5)
|
||
- `comments` — комментарии
|
||
- `archived` — архив (0/1)
|
||
- `created_at` — дата добавления
|
||
- `bought_at` — дата покупки
|
||
- `position` — порядок в списке
|
||
|
||
## 🎯 Roadmap
|
||
|
||
### Phase 1: MVP+ ✅
|
||
- [x] Базовая структура
|
||
- [x] Drag & drop
|
||
- [x] Real-time синхронизация
|
||
- [x] Изображения и цены
|
||
- [x] Статусы и категории
|
||
- [x] Поиск и фильтры
|
||
- [x] Архив и итоги
|
||
|
||
### Phase 2: Улучшения
|
||
- [ ] Тёмная тема
|
||
- [ ] PWA (установка как приложение)
|
||
- [ ] Экспорт/импорт (JSON backup)
|
||
- [ ] Горячие клавиши
|
||
- [ ] Контекстное меню
|
||
|
||
### Phase 3: AI-фичи
|
||
- [ ] AI-генерация идей (Ollama)
|
||
- [ ] Автозаполнение по ссылке
|
||
- [ ] Анализ цен (история)
|
||
|
||
### Phase 4: Коллаборация
|
||
- [ ] Регистрация/логин
|
||
- [ ] Общие доски
|
||
- [ ] Комментарии других пользователей
|
||
- [ ] Голосование
|
||
|
||
## 🤝 Вклад
|
||
|
||
1. Форкнуть проект
|
||
2. Создать ветку (`feature/your-feature`)
|
||
3. Запушить изменения
|
||
4. Создать Pull Request
|
||
|
||
## 📄 Лицензия
|
||
|
||
MIT License
|
||
|
||
---
|
||
|
||
**Создано:** 2024
|
||
**Автор:** Nikita (Ufa)
|