Архитектура системы "Карта успеха" — различия между версиями

Материал из m6a
Перейти к: навигация, поиск
(Backend (Django))
(Ресурсная система)
 
(не показаны 3 промежуточные версии этого же участника)
Строка 6: Строка 6:
 
** [[Приложение Categories, системы Карта Успеха|categories]] - категории
 
** [[Приложение Categories, системы Карта Успеха|categories]] - категории
 
** [[Приложение Life Needs, системы Карта Успеха|life_needs]] - жизненные потребности
 
** [[Приложение Life Needs, системы Карта Успеха|life_needs]] - жизненные потребности
** goals - цели
+
** [[Приложение Goals, системы Карта Успеха|goals]] - цели
** projects - проекты
+
** [[Приложение Projects, системы Карта Успеха|projects]] - проекты
** tasks - задачи
+
** [[Приложение Tasks, системы Карта Успеха|tasks]] - задачи
** activities - активности
+
** [[Приложение Activities, системы Карта Успеха|activities]] - активности
** resources - ресурсы
+
** [[Приложение Resources, системы Карта Успеха|resources]] - ресурсы
** report - отчеты
+
** [[Приложение Report, системы Карта Успеха|report]] - отчеты
  
 
=== API Endpoints ===
 
=== API Endpoints ===
 
* RESTful API с CRUD операциями для каждой сущности
 
* RESTful API с CRUD операциями для каждой сущности
 
* Основные маршруты:
 
* Основные маршруты:
** (Опишите основные маршруты для каждой сущности)
+
  /users/ - управление пользователями
 +
  /categories/ - категории
 +
  /life-needs/ - жизненные потребности
 +
  /goals/ - цели
 +
  /projects/ - проекты
 +
  /tasks/ - задачи
 +
  /activities/ - активности
 +
  /resources/ - ресурсы
 +
  /report/ - отчеты
 +
  /mindmap/ - визуализация структуры
  
 
=== Безопасность ===
 
=== Безопасность ===
Строка 118: Строка 127:
  
 
=== Основная структура ===
 
=== Основная структура ===
* (Опишите основную иерархию данных: Life Need -> Goal -> Project -> Task -> Activity)
+
  User
 +
  └── Category (Категории)
 +
    └── LifeNeed (Жизненные потребности)
 +
        └── Goal (Цели)
 +
            └── Project (Проекты)
 +
                └── Task (Задачи)
 +
                    └── Activity (Активности)
  
 
=== Ресурсная система ===
 
=== Ресурсная система ===
* (Опишите, как ресурсы связаны с другими сущностями)
+
  Resource
 +
    ├── Unit (Единицы измерения)
 +
    ├── ResourceType (Типы ресурсов)
 +
    └── ResourceActivity (Использование ресурсов)
  
 
== Технологический стек ==
 
== Технологический стек ==

Текущая версия на 13:49, 30 марта 2025

Backend (Django)

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

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

API Endpoints

  • RESTful API с CRUD операциями для каждой сущности
  • Основные маршруты:
 /users/ - управление пользователями
 /categories/ - категории
 /life-needs/ - жизненные потребности
 /goals/ - цели
 /projects/ - проекты
 /tasks/ - задачи
 /activities/ - активности
 /resources/ - ресурсы
 /report/ - отчеты
 /mindmap/ - визуализация структуры

Безопасность

  • Аутентификация через 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

Конфигурация

  • Переменные окружения
  • Настройки безопасности
  • Логирование

Иерархия данных

Основная структура

 User
 └── Category (Категории)
   └── LifeNeed (Жизненные потребности)
       └── Goal (Цели)
           └── Project (Проекты)
               └── Task (Задачи)
                   └── Activity (Активности)

Ресурсная система

 Resource
   ├── Unit (Единицы измерения)
   ├── ResourceType (Типы ресурсов)
   └── ResourceActivity (Использование ресурсов)

Технологический стек

Основные технологии

  • Django 3.x
  • Django REST framework
  • SQLite
  • Plotly
  • Pandas

Инструменты разработки

  • Coverage (тестирование)
  • Python Decouple (конфигурация)
  • Docker

Безопасность

Аутентификация

  • Встроенная система аутентификации Django
  • Восстановление пароля через email
  • Сессии пользователей

Авторизация

  • Декоратор `@login_required`
  • Проверка прав доступа
  • CSRF защита

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

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