2026-03-05 11:48:44 +05:00
2026-03-05 11:48:44 +05:00
h
2026-01-26 21:02:00 +05:00
2026-01-27 01:02:59 +05:00
2026-02-08 23:36:52 +05:00
2026-02-26 11:26:19 +05:00
2026-02-02 16:16:14 +05:00
2026-02-25 22:08:57 +05:00
+++
2026-02-13 14:02:21 +05:00
2026-02-01 22:03:01 +05:00
2026-02-22 10:55:46 +05:00
1
2026-01-28 20:28:30 +05:00
hz
2026-01-27 00:32:06 +05:00
2026-02-02 10:24:37 +05:00
2025-11-07 14:12:29 +05:00
2026-01-26 17:44:28 +05:00
2026-02-26 10:09:24 +05:00
%
2025-12-21 20:42:12 +05:00
%
2025-12-21 20:42:12 +05:00
r
2025-12-14 12:23:21 +05:00
%
2025-12-21 20:42:12 +05:00
2026-03-04 12:09:40 +05:00
%
2025-12-21 20:42:12 +05:00

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

Description
No description provided
Readme 1.8 MiB
Languages
JavaScript 75.7%
HTML 17.5%
CSS 6.8%