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