2025-11-30 15:36:56 +05:00
2025-11-24 11:43:41 +05:00
2025-11-24 11:43:41 +05:00
2025-11-07 14:12:29 +05:00
2025-11-30 15:36:56 +05:00
2025-11-07 14:22:33 +05:00
2025-11-30 15:30:15 +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/ # Файлы задач

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