3.2 KiB
3.2 KiB
pageType, id, title, sourceType, sourcePath, ingestedAt, updatedAt, status
| pageType | id | title | sourceType | sourcePath | ingestedAt | updatedAt | status |
|---|---|---|---|---|---|---|---|
| source | source.dev-task | DEV TASK | local-file | /home/node/.openclaw/workspace/tasks/apps-portal/DEV-TASK.md | 2026-04-10T13:37:41.693Z | 2026-04-10T13:37:41.693Z | active |
DEV TASK
Source
- Type:
local-file - Path:
/home/node/.openclaw/workspace/tasks/apps-portal/DEV-TASK.md - Bytes: 2574
- Updated: 2026-04-10T13:37:41.693Z
Content
# DEV-TASK: Портал приложений (apps.mva154.duckdns.org)
## Контекст
Нужен портал-лендинг с карточками веб-приложений. Светлая тема, автогенерация аватарок.
**Документация:**
- Бизнес-требования: `tasks/apps-portal/docs/BRD.md`
- Техническое задание: `tasks/apps-portal/docs/TZ.md`
---
## Задача
### Шаг 1: Инфраструктура
1. Создать `config/apps.json` с двумя приложениями (noisemap, snowbike-rag)
2. Создать `requirements.txt` (flask, pillow)
### Шаг 2: Автогенерация аватарок
3. Реализовать функцию `generate_avatars()`:
- Читает `config/apps.json`
- Для каждого приложения проверяет `static/avatars/{id}.png`
- Если файла нет — генерирует: градиентный фон (по хэшу name) + emoji/icon по центру
- PNG 200×200
### Шаг 3: Flask сервер
4. Создать `server.py`:
- GET `/` — главная (рендерит index.html с apps)
- GET `/api/apps` — JSON
- GET `/static/avatars/` — файлы
- При старте: `generate_avatars()`
### Шаг 4: Главная страница
5. Создать `templates/index.html`:
- Светлая тема (#F8FAFC фон, белые карточки)
- Tailwind CSS через CDN, шрифт Inter
- Карточки: аватарка 80×80, название, описание
- Клик → переход на url приложения
- Адаптивно: 4 → 2 → 1 колонка
- Hover: lift-эффект, синяя рамка
### Шаг 5: Тест
6. Запустить `python server.py`
7. Проверить http://localhost:5560/
8. Добавить третье приложение в apps.json — проверить автогенерацию аватарки
---
## Критерии приёмки
- [ ] http://localhost:5560/ — портал с карточками
- [ ] Клик — переход на приложение
- [ ] Аватарки в static/avatars/ сгенерированы
- [ ] Светлая тема, красиво
- [ ] Адаптивно на мобильном
- [ ] /api/apps — JSON
---
## Важно
• Всё в `tasks/apps-portal/`
• Порт 5560
• Pillow для аватарок (pip install pillow)
• Не трогать другие приложения