Files
wiki/sources/dev-task.md
2026-04-10 20:14:25 +00:00

100 lines
3.2 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.
---
pageType: source
id: source.dev-task
title: DEV TASK
sourceType: local-file
sourcePath: /home/node/.openclaw/workspace/tasks/apps-portal/DEV-TASK.md
ingestedAt: 2026-04-10T13:37:41.693Z
updatedAt: 2026-04-10T13:37:41.693Z
status: 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
```text
# 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)
Не трогать другие приложения
```
## Notes
<!-- openclaw:human:start -->
<!-- openclaw:human:end -->
## Related
<!-- openclaw:wiki:related:start -->
### Referenced By
- [Apps Portal](entities/project-apps-portal.md)
<!-- openclaw:wiki:related:end -->