Skip to content
This repository was archived by the owner on Jan 28, 2026. It is now read-only.

Commit 2372b58

Browse files
committed
feat: Add comprehensive application description outlining features for user management, quests, organizations, achievements, and security measures
1 parent c98c833 commit 2372b58

1 file changed

Lines changed: 116 additions & 0 deletions

File tree

DESCRIPTION.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Цель приложения
2+
Это приложение реализует административную часть приложения Atom Dobro — платформы для благотворительности и волонтёрства, объединяющей организации и активных граждан для совместного решения социальных задач.
3+
4+
# Возможности приложения
5+
6+
## Управление пользователями
7+
- Создание и управление пользовательскими аккаунтами
8+
- Система ролей: администратор и обычный пользователь
9+
- Управление профилями пользователей (обновление данных, аватаров)
10+
- Смена паролей
11+
- Просмотр списка всех пользователей (только для администраторов)
12+
13+
## Управление квестами
14+
Квесты — это задания с этапами, которые участники могут выполнить тремя способами:
15+
- **Финансово** — денежные взносы
16+
- **Материально** — предоставление необходимых ресурсов
17+
- **Волонтёрством** — личное участие и помощь
18+
19+
### Функциональность:
20+
- Создание квестов пользователями с уровнем 5+ (уровень рассчитывается на основе опыта)
21+
- Управление этапами квеста — шагами для достижения поставленной цели
22+
- Настройка требований — минимальных условий для завершения квеста
23+
- Фильтрация квестов по статусу (активные, архивированные, завершённые), городу и категории
24+
- Присоединение и выход пользователей из квестов
25+
- Завершение квестов с автоматическим начислением достижений
26+
- Архивация и разархивация квестов
27+
- Просмотр квестов пользователя и доступных квестов
28+
- Real-time события квестов через Server-Sent Events (SSE)
29+
- Обновление прогресса выполнения требований в этапах
30+
31+
## Управление организациями
32+
Организации создаются пользователями с уровнем 5+, но требуют модерации администратором перед публикацией.
33+
34+
### Функциональность:
35+
- Создание организаций пользователями (требуется уровень 5+)
36+
- Модерация организаций администраторами (подтверждение/отклонение)
37+
- Управление владельцами организаций (добавление/удаление)
38+
- Управление видами помощи организации — типами ресурсов, которыми организация может помочь
39+
- Массовое создание организаций (bulk import)
40+
- Загрузка и управление галереей изображений организаций (до 20 файлов, до 10MB каждый)
41+
- Хранение изображений в S3-совместимом хранилище
42+
- Фильтрация организаций по статусу подтверждения
43+
- Обновление информации об организациях
44+
45+
## Система достижений и опыта
46+
- Создание и управление достижениями
47+
- Автоматическое начисление достижений пользователям при выполнении квестов (если пользователь оставил вклад: финансово, материально или волонтёрством)
48+
- Каждое достижение имеет цену в виде опыта
49+
- Автоматическое начисление опыта после выдачи достижения
50+
- Система уровней на основе накопленного опыта
51+
- Просмотр достижений конкретного пользователя
52+
- Ручное присвоение достижений администраторами
53+
54+
## Географические данные
55+
- Управление регионами и городами (только для администраторов)
56+
- Массовое создание городов
57+
- Получение списка городов по региону
58+
- Связь организаций и квестов с географическими локациями
59+
60+
## Категории и типы
61+
- Управление категориями квестов
62+
- Управление типами организаций
63+
- Управление видами помощи (help-types)
64+
- Массовое создание категорий
65+
66+
## Статистика системы
67+
- Общая статистика платформы:
68+
- Количество городов и регионов
69+
- Количество пользователей
70+
- Количество организаций
71+
- Общее количество квестов
72+
- Количество активных квестов
73+
- Количество завершённых квестов
74+
75+
## Аутентификация и авторизация
76+
- JWT-аутентификация с поддержкой access и refresh токенов
77+
- Вход в систему (только для администраторов)
78+
- Обновление токенов
79+
- Валидация токенов
80+
- Защита эндпоинтов с помощью guards
81+
- Логирование попыток входа для мониторинга безопасности
82+
83+
## Загрузка файлов
84+
- Загрузка изображений для организаций
85+
- Валидация файлов (тип, размер, расширение)
86+
- Интеграция с S3-совместимыми хранилищами (AWS S3, Yandex Object Storage, Beget и др.)
87+
- Проксирование изображений через API
88+
89+
## Мониторинг и метрики
90+
- Интеграция с Prometheus для сбора метрик
91+
- Метрики HTTP-запросов (количество, длительность, ошибки)
92+
- Метрики попыток входа в систему
93+
- Экспорт метрик для мониторинга производительности
94+
95+
## Обновления и история
96+
- Управление обновлениями квестов (quest-updates)
97+
- Управление обновлениями организаций (organization-updates)
98+
- Отслеживание изменений в системе
99+
100+
## Технические особенности
101+
- RESTful API на базе NestJS
102+
- Версионирование API (v1, v2)
103+
- Swagger документация для всех эндпоинтов
104+
- Валидация данных с помощью Zod
105+
- Поддержка CORS для работы с фронтендом
106+
- Глобальный префикс API: `/admin/api`
107+
- Server-Sent Events для real-time обновлений
108+
- Логирование запросов к организациям
109+
- Soft delete для безопасности данных
110+
111+
## Безопасность
112+
- Хеширование паролей с помощью bcrypt
113+
- JWT токены с настраиваемым временем жизни
114+
- Разделение прав доступа между администраторами и обычными пользователями
115+
- Валидация всех входящих данных
116+
- Защита от несанкционированного доступа к административным функциям

0 commit comments

Comments
 (0)