Система отслеживания заказов с поддержкой множественных баз данных и проектов. Веб-приложение для управления заказами, проектами и базами данных с удобным интерфейсом и экспортом данных.
- Управление базами данных - создание и управление множественными базами данных
- Управление проектами - организация проектов внутри баз данных
- Отслеживание заказов - создание, редактирование и отслеживание статусов заказов
- Экспорт в Excel - генерация отчетов в формате Excel
- Управление счетами - функционал для работы со счетами
- Админ-панель - управление пользователями и правами доступа
- Система ролей - гибкая система прав доступа для пользователей
- Аутентификация - безопасная система входа с JWT токенами
- Node.js с Express.js - серверная часть приложения
- PostgreSQL - реляционная база данных
- Drizzle ORM - современный ORM для работы с базой данных
- JWT - аутентификация через JSON Web Tokens
- Passport.js - middleware для аутентификации
- bcryptjs - хеширование паролей
- React 18 - библиотека для построения пользовательского интерфейса
- TypeScript - типизированный JavaScript
- Vite - быстрый сборщик и dev-сервер
- React Router - маршрутизация в приложении
- TanStack Query - управление состоянием сервера
- Tailwind CSS - utility-first CSS фреймворк
- shadcn/ui - компоненты UI на основе Radix UI
- React Hook Form - управление формами
- Zod - валидация схем данных
- Docker Compose - контейнеризация и оркестрация
- ESBuild - быстрая сборка для production
- TypeScript - статическая типизация
- Node.js 18+
- npm или yarn
- PostgreSQL 15+ (или Docker для запуска через docker-compose)
- Docker и Docker Compose (опционально, для упрощенного развертывания)
git clone <repository-url>
cd OrderTrackingSystemnpm install- Запуск PostgreSQL контейнера:
docker-compose up -dЭто запустит PostgreSQL на порту 5433 с предустановленными настройками:
- База данных:
orderdb - Пользователь:
orderuser - Пароль:
orderpass - Порт:
5433
- Проверка работы базы данных:
# Проверка статуса контейнера
docker-compose ps
# Просмотр логов (если есть проблемы)
docker-compose logs db- Ожидание готовности базы данных:
Подождите несколько секунд, пока PostgreSQL полностью запустится. Вы можете проверить готовность:
# Проверка подключения к базе данных
docker-compose exec db pg_isready -U orderuser -d orderdb- Создание базы данных:
Подключитесь к PostgreSQL и создайте базу данных:
# Через psql
psql -U postgres
CREATE DATABASE orderdb;
CREATE USER orderuser WITH PASSWORD 'orderpass';
GRANT ALL PRIVILEGES ON DATABASE orderdb TO orderuser;
\q- Настройка переменных окружения:
Создайте файл .env в корне проекта:
# База данных (для Drizzle)
DATABASE_URL=postgresql://orderuser:orderpass@localhost:5432/orderdb
# Или отдельные переменные (для прямого подключения)
PGHOST=localhost
PGPORT=5432
PGUSER=orderuser
PGPASSWORD=orderpass
PGDATABASE=orderdb
# JWT секрет для аутентификации
JWT_SECRET=your-secret-key-here-change-in-production
# Окружение
NODE_ENV=developmentПосле настройки базы данных необходимо применить схему:
# Для Docker Compose (убедитесь, что DATABASE_URL установлен)
export DATABASE_URL=postgresql://orderuser:orderpass@localhost:5433/orderdb
npm run db:pushИли если используете .env файл:
npm run db:pushВажно: Команда db:push создаст все необходимые таблицы в базе данных:
databases- таблица баз данныхprojects- таблица проектовorders- таблица заказовusers- таблица пользователейuser_databases- связующая таблица
Проверка успешного создания таблиц:
# Для Docker Compose
docker-compose exec db psql -U orderuser -d orderdb -c "\dt"
# Для локальной PostgreSQL
psql -U orderuser -d orderdb -c "\dt"Вы должны увидеть список созданных таблиц.
npm run devПриложение будет доступно по адресу http://localhost:5000
При первом запуске:
- Автоматически создастся первый администратор (см. раздел "Первый вход")
- Если база данных пустая, все таблицы будут созданы автоматически
npm run build
npm startПричина: База данных еще не готова или неправильные настройки подключения.
Решение:
- Убедитесь, что PostgreSQL запущен:
docker-compose ps
- Проверьте переменные окружения (особенно
DATABASE_URL) - Подождите 10-15 секунд после запуска Docker контейнера
Причина: База данных не была создана.
Решение:
# Для Docker Compose - база создается автоматически
# Для локальной PostgreSQL:
psql -U postgres -c "CREATE DATABASE orderdb;"Причина: Неправильные учетные данные.
Решение:
- Проверьте переменные окружения в
.env - Для Docker Compose используйте значения из
docker-compose.yml - Убедитесь, что
DATABASE_URLсоответствует настройкам
Причина: Схема базы данных не была применена.
Решение:
# Примените схему
npm run db:push
# Проверьте, что таблицы созданы
docker-compose exec db psql -U orderuser -d orderdb -c "\dt"Причина: Другой сервис использует порт 5433.
Решение:
- Измените порт в
docker-compose.yml:ports: - "5434:5432" # Используйте другой порт
- Обновите
DATABASE_URLв.env:DATABASE_URL=postgresql://orderuser:orderpass@localhost:5434/orderdb
При первом запуске автоматически создается администратор:
- Логин:
ArgusM - Пароль:
Ar29gus207
OrderTrackingSystem/
├── client/ # Frontend приложение
│ ├── src/
│ │ ├── components/ # React компоненты
│ │ ├── pages/ # Страницы приложения
│ │ ├── hooks/ # React хуки
│ │ └── lib/ # Утилиты и конфигурация
│ └── index.html
├── server/ # Backend приложение
│ ├── index.ts # Точка входа сервера
│ ├── routes.ts # API маршруты
│ ├── storage_new.ts # Слой работы с данными
│ └── db.ts # Конфигурация базы данных
├── shared/ # Общий код
│ └── schema.ts # Схемы базы данных и валидация
├── docker-compose.yml # Конфигурация Docker
├── package.json # Зависимости проекта
└── README.md # Документация
Приложение поддерживает следующие права доступа:
- isAdmin - полный административный доступ
- canAddOrders - возможность создавать заказы
- canDeleteOrders - возможность удалять заказы
- canManageDatabases - управление базами данных
- canManageProjects - управление проектами
Права настраиваются администратором в админ-панели.
POST /api/login- вход в системуPOST /api/logout- выход из системы
GET /api/orders- получение списка заказовPOST /api/orders- создание нового заказаPUT /api/orders/:id- обновление заказаDELETE /api/orders/:id- удаление заказа
GET /api/projects- получение списка проектовPOST /api/projects- создание проектаPUT /api/projects/:id- обновление проектаDELETE /api/projects/:id- удаление проекта
GET /api/databases- получение списка баз данныхPOST /api/databases- создание базы данныхPUT /api/databases/:id- обновление базы данныхDELETE /api/databases/:id- удаление базы данных
GET /api/users- получение списка пользователейPOST /api/users- создание пользователяPUT /api/users/:id- обновление пользователяDELETE /api/users/:id- удаление пользователя
GET /api/export/excel- экспорт данных в Excel
npm run checkСхема базы данных определена в shared/schema.ts и включает следующие таблицы:
- databases - базы данных
- projects - проекты
- orders - заказы
- users - пользователи
- user_databases - связь пользователей с базами данных
# Запуск базы данных
docker-compose up -d
# Остановка
docker-compose down
# Остановка с удалением данных
docker-compose down -v- Пароли хранятся в виде bcrypt хешей
- JWT токены для аутентификации
- Валидация данных через Zod схемы
- Защита API endpoints через middleware
- SQL injection защита через Drizzle ORM














