Архитектура системы "Карта успеха"

Материал из m6a
Версия от 13:36, 30 марта 2025; Vshpagin (обсуждение | вклад) (Структура приложения)

Перейти к: навигация, поиск

Backend (Django)

Структура приложения

  • Модульная архитектура с разделением на приложения:

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

  • Настроена отправка 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 защита

Защита данных

  • Валидация на уровне моделей
  • Валидация на уровне форм
  • Безопасное хранение конфиденциальных данных