cash-report-system/README.md
2025-07-24 00:23:36 +02:00

182 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Система учета ежедневной кассовой статистики
## 📋 Описание проекта
Веб-система для учета и анализа ежедневных кассовых отчетов магазинов с административной панелью, графиками и системой управления пользователями.
## ✨ Функциональность
- **Авторизация и роли**: Администраторы и кассиры с разными правами доступа
- **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