Files
minicrm/README.md
2025-12-14 12:23:21 +05:00

157 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# School CRM - Система управления задачами для образовательных учреждений
## Описание проекта
School CRM - это веб-приложение для управления задачами и проектами в образовательных учреждениях. Система позволяет эффективно организовывать работу между администрацией, учителями и сотрудниками школы.
## Основные возможности
### 🔐 Многоуровневая аутентификация
- **Локальная авторизация** - встроенная система пользователей
- **LDAP-интеграция** - поддержка доменной аутентификации
- **Ролевая модель**:
- Администратор - полный доступ ко всем функциям
- Учитель - создание и управление своими задачами
### 📋 Управление задачами
- **Создание задач** с детальным описанием и сроками
- **Назначение исполнителей** - несколько пользователей на одну задачу
- **Индивидуальные сроки** для каждого исполнителя
- **Копирование задач** - быстрая репликация существующих шаблонов
- **Мягкое удаление** с возможностью восстановления
### 📊 Система статусов
- ⏳ Назначена
- 🔄 В работе
- ✅ Выполнена
- ❗ Просрочена (автоматическое определение)
### 📎 Работа с файлами
- **Загрузка документов** - до 15 файлов, максимум 300MB
- **Организованное хранение** - структура папок по задачам и пользователям
- **Безопасное скачивание** - проверка прав доступа
### 📝 Логирование и аналитика
- **Детальная история действий** - кто, что и когда сделал
- **Отслеживание изменений** статусов и назначений
- **Мониторинг загрузки файлов**
## Технологический стек
### Backend
- **Node.js** - серверная платформа
- **Express.js** - веб-фреймворк
- **SQLite** - база данных
- **Multer** - обработка загрузки файлов
- **Bcryptjs** - хэширование паролей
### Frontend
- **Чистый JavaScript** - без зависимостей от фреймворков
- **HTML5/CSS3** - адаптивный интерфейс
- **AJAX** - асинхронные запросы к API
### Безопасность
- **Сессии** - управление аутентификацией
- **Проверка прав доступа** - на всех уровнях
- **Валидация данных** - клиентская и серверная
## Установка и запуск
### Предварительные требования
- Node.js 14+
- npm или yarn
### Шаги установки
1. Клонировать репозиторий
2. Установить зависимости: `npm install`
3. Настроить переменные окружения в `.env`
4. Запустить сервер: `npm start`
5. Открыть в браузере: `http://localhost:3000`
### Конфигурация
Создайте файл `.env` со следующими параметрами:
PORT=3000
SESSION_SECRET=your_secret_key
LDAP_AUTH_URL=your_ldap_endpoint
ALLOWED_GROUPS=admin_teachers,department_heads
## API Endpoints
### Аутентификация
- `POST /api/login` - вход в систему
- `POST /api/logout` - выход
- `GET /api/user` - информация о текущем пользователе
### Задачи
- `GET /api/tasks` - список задач
- `POST /api/tasks` - создание задачи
- `GET /api/tasks/:id` - получение задачи
- `PUT /api/tasks/:id` - обновление задачи
- `DELETE /api/tasks/:id` - удаление задачи
- `POST /api/tasks/:id/copy` - копирование задачи
### Файлы
- `POST /api/tasks/:id/files` - загрузка файлов
- `GET /api/tasks/:id/files` - список файлов задачи
- `GET /api/files/:id/download` - скачивание файла
### Логи
- `GET /api/activity-logs` - история действий
## Тестовые пользователи
После первого запуска создаются тестовые пользователи:
- **Администратор**: director / director123
- **Завуч**: zavuch / zavuch123
- **Учитель**: teacher / teacher123
## Лицензия
MIT License - разрешается свободное использование и модификация.
## Поддержка
Для вопросов и предложений создавайте issues в репозитории проекта.
## Структура проекта
school-crm/
├── server.js # Основной сервер
├── auth.js # Логика аутентификации
├── database.js # Работа с базой данных
├── package.json # Зависимости
├── .env # Конфигурация
├── public/ # Статические файлы
│ ├── index.html # Главная страница
│ ├── style.css # Стили
│ └── script.js # Клиентский код
└── uploads/ # Загруженные файлы
└── tasks/ # Файлы задач
.env
# Первые 3 пользователя системы
USER_1_LOGIN=director
USER_1_PASSWORD=director123
USER_1_NAME=Директор школы
USER_1_EMAIL=director@school.ru
USER_2_LOGIN=zavuch
USER_2_PASSWORD=zavuch123
USER_2_NAME=Завуч
USER_2_EMAIL=zavuch@school.ru
USER_3_LOGIN=teacher
USER_3_PASSWORD=teacher123
USER_3_NAME=Учитель математики
USER_3_EMAIL=math@school.ru
SESSION_SECRET=your_secret_key_here
# LDAP настройки
LDAP_AUTH_URL=https://ldap.ru/api/auth
ALLOWED_GROUPS=admin
# Добавьте эту строку в ваш .env файл
JWT_SECRET=your_super_secret_jwt_key_here_make_it_very_long_and_secure
# Настройки сервиса уведомлений
NOTIFICATION_SERVICE_URL=https://alarm.ru/api/send-message
NOTIFICATION_SERVICE_LOGIN=kalugin66
NOTIFICATION_SERVICE_PASSWORD=kalugin66