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
Шаги установки
- Клонировать репозиторий
- Установить зависимости:
npm install - Настроить переменные окружения в
.env - Запустить сервер:
npm start - Открыть в браузере:
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/ # Файлы задач