Техническая документация: Система достижения жизненных целей — различия между версиями
Материал из m6a
Vshpagin (обсуждение | вклад) |
Vshpagin (обсуждение | вклад) (→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:
- cd frontend
- npm install
- 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:
- cd backend
- pip install -r requirements.txt
- python manage.py migrate
- 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)
- Goal:
- Описание индексов: 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.