7.1 KiB
7.1 KiB
Система учета ежедневной кассовой статистики
📋 Описание проекта
Веб-система для учета и анализа ежедневных кассовых отчетов магазинов с административной панелью, графиками и системой управления пользователями.
✨ Функциональность
- Авторизация и роли: Администраторы и кассиры с разными правами доступа
- 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)
📊 Использование системы
Для кассиров
- Войдите в систему с учетными данными
- Заполните ежедневный отчет:
- Выберите магазин (только назначенные)
- Внесите доходы и расходы
- Система автоматически рассчитает итоги
- Просмотрите "Отчет за сегодня"
- Редактируйте отчет до подтверждения администратором
Для администраторов
- Dashboard: Просмотр общей аналитики и графиков
- Отчеты: Просмотр, фильтрация и экспорт всех отчетов
- Пользователи: CRUD операции с пользователями, настройка прав доступа
- Магазины: Управление списком магазинов
- 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 и восстановление данных
Участие в разработке
- Форк репозитория
- Создайте feature branch
- Внесите изменения
- Добавьте тесты
- Создайте Pull Request
🐛 Решение проблем
Частые ошибки
- Порт занят: Измените порты в docker-compose.yml
- Права доступа: Проверьте настройки прав пользователей
- База данных: Убедитесь, что SQLite файл доступен для записи
Логи
# Docker логи
docker-compose logs -f
# Логи конкретного сервиса
docker-compose logs -f backend
docker-compose logs -f frontend
📞 Поддержка
- Email: support@example.com
- Документация: [Wiki]
- Issues: [GitHub Issues]
📄 Лицензия
MIT License - см. файл LICENSE
Автор: AI Assistant Версия: 2.0.0 Дата: 2024
Генерация демо-данных
Система может автоматически генерировать тестовые данные при запуске. Управляется переменной окружения:
GENERATE_DEMO_DATA=true
- генерация включена (по умолчанию в dev)GENERATE_DEMO_DATA=false
- генерация отключена