Go to file
2025-07-31 02:45:48 +02:00
backend latest changes 2025-07-26 22:50:23 +02:00
docker update docker 2025-07-29 03:04:59 +00:00
frontend update API URL 2025-07-31 02:45:48 +02:00
.gitignore Initial commit 2025-07-24 00:23:36 +02:00
deploy.md Initial commit 2025-07-24 00:23:36 +02:00
README.md Initial commit 2025-07-24 00:23:36 +02:00

Система учета ежедневной кассовой статистики

📋 Описание проекта

Веб-система для учета и анализа ежедневных кассовых отчетов магазинов с административной панелью, графиками и системой управления пользователями.

Функциональность

  • Авторизация и роли: Администраторы и кассиры с разными правами доступа
  • CRUD операции: Управление пользователями, магазинами и отчетами
  • Система прав: Назначение магазинов конкретным кассирам
  • Аналитика: Интерактивные графики доходов, расходов и статистики
  • Отчетность: Экспорт данных в Excel/CSV
  • Responsive дизайн: Адаптация под все устройства

🏗️ Архитектура

cash-report-system/
├── frontend/           # Фронтенд приложения
│   ├── index.html     # Основной HTML файл
│   ├── styles.css     # CSS стили
│   └── script.js      # JavaScript логика
├── backend/           # Бэкенд сервер
│   ├── server.js      # Express сервер
│   ├── database.js    # SQLite логика
│   ├── package.json   # Зависимости
│   └── routes/        # API маршруты
├── docker/            # Docker конфигурация
│   ├── docker-compose.yml
│   ├── Dockerfile.frontend
│   ├── Dockerfile.backend
│   └── nginx.conf
└── docs/              # Документация

🚀 Быстрый старт

Вариант 1: Docker (рекомендуется)

git clone [repository-url]
cd cash-report-system
docker-compose up -d

Система будет доступна по адресу: http://localhost:3000

Вариант 2: Локальная установка

Требования

  • Node.js 16+
  • npm или yarn
  • SQLite3

Установка бэкенда

cd backend
npm install
npm start

Запуск фронтенда

cd frontend
# Откройте index.html в браузере
# или используйте локальный сервер:
python -m http.server 8080

🔐 Данные для входа

Администратор

  • Логин: admin
  • Пароль: admin123
  • Права: Полный доступ ко всем функциям

Кассиры (тестовые)

  • cashier1 / password123 (доступ к Магазинам 1,2)
  • cashier2 / password123 (доступ к Магазину 3)

📊 Использование системы

Для кассиров

  1. Войдите в систему с учетными данными
  2. Заполните ежедневный отчет:
    • Выберите магазин (только назначенные)
    • Внесите доходы и расходы
    • Система автоматически рассчитает итоги
  3. Просмотрите "Отчет за сегодня"
  4. Редактируйте отчет до подтверждения администратором

Для администраторов

  1. Dashboard: Просмотр общей аналитики и графиков
  2. Отчеты: Просмотр, фильтрация и экспорт всех отчетов
  3. Пользователи: CRUD операции с пользователями, настройка прав доступа
  4. Магазины: Управление списком магазинов
  5. TODO: Отслеживание задач и изменений системы

🛠️ Техническая информация

Стек технологий

  • Frontend: HTML5, CSS3, JavaScript (ES6+), Tailwind CSS
  • Backend: Node.js, Express.js, SQLite
  • Графики: Chart.js
  • Контейнеризация: Docker, Docker Compose
  • Веб-сервер: Nginx (reverse proxy)

API Endpoints

GET    /api/auth/login     # Авторизация
POST   /api/reports        # Создание отчета
GET    /api/reports        # Получение отчетов
PUT    /api/reports/:id    # Обновление отчета
DELETE /api/reports/:id    # Удаление отчета
GET    /api/users          # Список пользователей
POST   /api/users          # Создание пользователя
GET    /api/stores         # Список магазинов
POST   /api/stores         # Создание магазина

База данных

SQLite с таблицами:

  • users - пользователи системы
  • stores - магазины
  • reports - ежедневные отчеты
  • user_store_permissions - права доступа к магазинам

🔧 Настройка и конфигурация

Переменные окружения

Создайте файл .env на основе .env.example:

cp .env.example .env

Порты

  • Frontend: 3000
  • Backend API: 3001
  • Database: SQLite (файл)

📈 Развитие проекта

Планируемые улучшения

  • Интеграция с кассовыми аппаратами
  • Мобильное приложение
  • Расширенная аналитика
  • Система уведомлений
  • Backup и восстановление данных

Участие в разработке

  1. Форк репозитория
  2. Создайте feature branch
  3. Внесите изменения
  4. Добавьте тесты
  5. Создайте Pull Request

🐛 Решение проблем

Частые ошибки

  • Порт занят: Измените порты в docker-compose.yml
  • Права доступа: Проверьте настройки прав пользователей
  • База данных: Убедитесь, что SQLite файл доступен для записи

Логи

# Docker логи
docker-compose logs -f

# Логи конкретного сервиса
docker-compose logs -f backend
docker-compose logs -f frontend

📞 Поддержка

📄 Лицензия

MIT License - см. файл LICENSE


Автор: AI Assistant Версия: 2.0.0 Дата: 2024