# Система учета ежедневной кассовой статистики ## 📋 Описание проекта Веб-система для учета и анализа ежедневных кассовых отчетов магазинов с административной панелью, графиками и системой управления пользователями. ## ✨ Функциональность - **Авторизация и роли**: Администраторы и кассиры с разными правами доступа - **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 (рекомендуется) ```bash git clone [repository-url] cd cash-report-system docker-compose up -d ``` Система будет доступна по адресу: http://localhost:3000 ### Вариант 2: Локальная установка #### Требования - Node.js 16+ - npm или yarn - SQLite3 #### Установка бэкенда ```bash cd backend npm install npm start ``` #### Запуск фронтенда ```bash 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`: ```bash 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 файл доступен для записи ### Логи ```bash # 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` - генерация отключена