Files
wish-board/README.md
T

138 lines
4.8 KiB
Markdown
Raw 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.
# 🎯 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)