Files
wiki/tasks/apps-portal/DEV-TASK.md
2026-04-12 21:55:33 +03:00

2.5 KiB
Raw Blame History

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: Автогенерация аватарок

  1. Реализовать функцию generate_avatars():
    • Читает config/apps.json
    • Для каждого приложения проверяет static/avatars/{id}.png
    • Если файла нет — генерирует: градиентный фон (по хэшу name) + emoji/icon по центру
    • PNG 200×200

Шаг 3: Flask сервер

  1. Создать server.py:
    • GET / — главная (рендерит index.html с apps)
    • GET /api/apps — JSON
    • GET /static/avatars/ — файлы
    • При старте: generate_avatars()

Шаг 4: Главная страница

  1. Создать templates/index.html:
    • Светлая тема (#F8FAFC фон, белые карточки)
    • Tailwind CSS через CDN, шрифт Inter
    • Карточки: аватарка 80×80, название, описание
    • Клик → переход на url приложения
    • Адаптивно: 4 → 2 → 1 колонка
    • Hover: lift-эффект, синяя рамка

Шаг 5: Тест

  1. Запустить python server.py
  2. Проверить http://localhost:5560/
  3. Добавить третье приложение в apps.json — проверить автогенерацию аватарки

Критерии приёмки

  • http://localhost:5560/ — портал с карточками
  • Клик — переход на приложение
  • Аватарки в static/avatars/ сгенерированы
  • Светлая тема, красиво
  • Адаптивно на мобильном
  • /api/apps — JSON

Важно

• Всё в tasks/apps-portal/ • Порт 5560 • Pillow для аватарок (pip install pillow) • Не трогать другие приложения