Архитектура системы "Карта успеха"
Материал из m6a
Содержание
Backend (Django)
Структура приложения
- Модульная архитектура с разделением на приложения:
- users - управление пользователями
- categories - категории
- life_needs - жизненные потребности
- goals - цели
- projects - проекты
- tasks - задачи
- activities - активности
- resources - ресурсы
- report - отчеты
API Endpoints
- RESTful API с CRUD операциями для каждой сущности
- Основные маршруты:
- (Опишите основные маршруты для каждой сущности)
Безопасность
- Аутентификация через Django Auth
- Декоратор `@login_required` для защиты views
- CSRF защита
- Валидация данных на уровне моделей и форм
Frontend
Шаблоны
- Базовый шаблон `base_form.html`
- Специализированные шаблоны для каждой сущности
- Шаблон для mindmap визуализации
- Адаптивный дизайн
Статические файлы
- CSS стили
- Изображения (`logo.png`, `favicon.ico`)
- JavaScript файлы
Визуализация
- Календарь активностей
- Mindmap для отображения структуры
- Графики и диаграммы (через Plotly)
База данных
Конфигурация
- SQLite как основная БД
- Модели с отношениями:
- One-to-Many
- Many-to-Many
- Foreign Key связи
Оптимизация
- Использование `prefetch_related` для оптимизации запросов
- Индексы на часто используемых полях
- Кэширование на уровне Django
API
REST API
- CRUD операции для всех сущностей
- Специальные эндпоинты для:
- Обновления статусов
- Управления приоритетами
- Планирования активностей
- Генерации отчетов
Форматы данных
- JSON для API ответов
- Формы Django для валидации данных
- Сериализация моделей
Дополнительные компоненты
Система отчетности
- Генерация отчетов по:
- Категориям
- Жизненным потребностям
- Целям
- Проектам
- Задачам
Планировщик
- Управление активностями
- Календарь
- Зависимости между активностями
- Интервалы времени
Ресурсный менеджмент
- Управление единицами измерения
- Типы ресурсов
- Отслеживание изменений ресурсов
Интеграции
- Настроена отправка email через SMTP
- Восстановление пароля
- Уведомления
Визуализация
- Plotly для графиков
- Календарь для активностей
- Mindmap для структуры
Развертывание
Docker
- Dockerfile для контейнеризации
- Настройки для production
Конфигурация
- Переменные окружения
- Настройки безопасности
- Логирование
Иерархия данных
Основная структура
- (Опишите основную иерархию данных: Life Need -> Goal -> Project -> Task -> Activity)
Ресурсная система
- (Опишите, как ресурсы связаны с другими сущностями)
Технологический стек
Основные технологии
- Django 3.x
- Django REST framework
- SQLite
- Plotly
- Pandas
Инструменты разработки
- Coverage (тестирование)
- Python Decouple (конфигурация)
- Docker
Безопасность
Аутентификация
- Встроенная система аутентификации Django
- Восстановление пароля через email
- Сессии пользователей
Авторизация
- Декоратор `@login_required`
- Проверка прав доступа
- CSRF защита
Защита данных
- Валидация на уровне моделей
- Валидация на уровне форм
- Безопасное хранение конфиденциальных данных