Техническая документация: Система достижения жизненных целей — различия между версиями

Материал из m6a
Перейти к: навигация, поиск
(2. Общая архитектура системы)
 
Строка 5: Строка 5:
  
 
== 2. Общая архитектура системы ==
 
== 2. Общая архитектура системы ==
* Описание архитектурных компонентов: Frontend, Backend, Database, API.
+
* [[Архитектура системы "Карта успеха"|Описание архитектурных компонентов]]: Frontend, Backend, Database, API.
 
* Диаграмма архитектуры системы: (Вставьте диаграмму, если имеется).
 
* Диаграмма архитектуры системы: (Вставьте диаграмму, если имеется).
 
* Описание взаимодействия между компонентами: Frontend взаимодействует с Backend API, который, в свою очередь, обращается к базе данных.
 
* Описание взаимодействия между компонентами: Frontend взаимодействует с Backend API, который, в свою очередь, обращается к базе данных.

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

1. Введение

  • Общее описание системы: Система поддержки достижения жизненных целей "Карта успеха" предоставляет пользователям инструменты для определения, планирования и достижения целей.
  • Цель и задачи документа: Описание архитектуры, функциональности и процесса развертывания системы. Предназначено для разработчиков, тестировщиков и администраторов.
  • Глоссарий терминов: (Определения специфических терминов, используемых в документации).

2. Общая архитектура системы

  • Описание архитектурных компонентов: Frontend, Backend, Database, API.
  • Диаграмма архитектуры системы: (Вставьте диаграмму, если имеется).
  • Описание взаимодействия между компонентами: Frontend взаимодействует с Backend API, который, в свою очередь, обращается к базе данных.
  • Выбор технологического стека и обоснование: JavaScript/React (Frontend), Python/Django (Backend), SQLite (Database) - выбран для скорости разработки, простоты развертывания и удобства использования Django.

3. Описание Frontend

  • Описание структуры приложения: Страницы: Главная, Цели, Планирование, Прогресс. Компоненты: Форма добавления цели, Список целей, Календарь, График прогресса, Интерактивная карта визуализации целей.
  • Схема навигации: (Описать переходы между страницами).
  • Используемые библиотеки и фреймворки: React, Redux, Material-UI, Leaflet (для карты визуализации целей), Axios (для API запросов).
  • Описание UI/UX компонентов и принципов дизайна: Следование Material Design, акцент на удобство и интуитивно понятный интерфейс. Визуализация целей на карте для наглядности.
  • Инструкции по сборке и развертыванию Frontend:
  1. cd frontend
  2. npm install
  3. npm run build

(Далее - инструкции по развертыванию на сервере).

4. Описание Backend

  • Описание структуры API: REST API, реализованный с помощью Django REST Framework.
  • Описание эндпоинтов API:
    • GET /api/goals/ - Получение списка целей.
    • POST /api/goals/ - Создание новой цели.
    • PUT /api/goals/{id}/ - Обновление цели.
    • DELETE /api/goals/{id}/ - Удаление цели.
    • GET /api/map_data/ - Получение данных для карты целей.
  • Схема базы данных: (Описать структуру базы данных Django models).
  • Описание моделей данных: (Описать структуру данных для целей, задач и т.д. в Django models).
  • Используемые фреймворки и библиотеки: Python, Django, Django REST Framework, SQLite.
  • Описание логики обработки запросов: (Описать, как обрабатываются запросы к API Django views).
  • Описание системы аутентификации и авторизации: Django's built-in authentication system, Django REST Framework's authentication policies (e.g., Token authentication).
  • Инструкции по установке и настройке Backend:
  1. cd backend
  2. pip install -r requirements.txt
  3. python manage.py migrate
  4. python manage.py createsuperuser

(Далее - инструкции по настройке Django и переменных окружения).

5. Описание базы данных

  • Выбор СУБД: SQLite (файловая база данных).
  • Схема базы данных: (Описание Django models и их полей):
    • Goal:
      • id: Integer (Primary Key)
      • title: CharField
      • description: TextField
      • deadline: DateField
      • status: CharField (choices: ['open', 'in progress', 'completed'])
      • latitude: FloatField (nullable)
      • longitude: FloatField (nullable)
  • Описание индексов: Django автоматически создает индексы для внешних ключей и часто используемых полей. Можно добавить ручные индексы для `latitude` и `longitude` при необходимости.
  • Инструкции по созданию и настройке базы данных: (Инструкции по миграции Django `python manage.py migrate`).
  • Примеры запросов к базе данных: (Примеры запросов к базе данных Django ORM).

6. Развертывание и настройка

  • Требования к окружению: Python 3.8+, Django 3.2+.
  • Инструкции по установке и настройке Frontend, Backend и базы данных: (Подробные инструкции для каждого компонента).
  • Инструкции по развертыванию в облачной среде: (Пример - развертывание на Heroku или PythonAnywhere).
  • Настройка CI/CD: (Описание процесса автоматической сборки и развертывания с использованием GitHub Actions или аналогичных инструментов).

7. Тестирование

  • Описание стратегии тестирования: Юнит-тесты, интеграционные тесты, сквозные тесты, тестирование API.
  • Описание тестовых сценариев: (Примеры тестовых сценариев для различных компонентов системы, включая тестирование карты и API).
  • Инструкции по запуску тестов: (Инструкции по запуску тестов Django `python manage.py test`).
  • Метрики качества кода и покрытия тестами: Code coverage > 80%.

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

  • Описание мер по обеспечению безопасности системы: Использование HTTPS, валидация данных, защита от CSRF и XSS, защита от SQL-инъекций (Django ORM помогает в этом).
  • Аутентификация и авторизация: Django's built-in authentication system, Django REST Framework permissions.
  • Обработка и хранение персональных данных: (Описание мер по защите персональных данных в соответствии с GDPR).

9. Мониторинг и логирование

  • Описание системы мониторинга производительности системы: Django Debug Toolbar, Sentry.
  • Сбор и анализ логов: Django's built-in logging system.
  • Настройка уведомлений об ошибках и проблемах: Email, Slack.

10. Поддержка и обслуживание

  • Описание процедур резервного копирования и восстановления данных: Регулярное создание резервных копий базы данных SQLite.
  • План действий при возникновении инцидентов: (План действий при возникновении ошибок или сбоев в системе).
  • Контакты для связи с технической поддержкой: support@example.com

11. API Документация

  • (Ссылка на DRF's browsable API, или Swagger/OpenAPI документацию, если имеется, или подробное описание всех API endpoints с примерами запросов и ответов).
    • Изменения:**
  • Обновлено описание технологического стека: Python/Django (Backend), SQLite (Database).
  • Обновлены инструкции по установке и настройке Backend с использованием `pip install` и `python manage.py`.
  • Добавлено описание моделей данных в терминах Django models.
  • Указаны механизмы аутентификации и авторизации Django.
  • Указаны инструменты для мониторинга и логирования в Django.