# EEV\_Proj Server Этот репозиторий содержит серверную часть проекта **EEV\_Proj** (ветка `server`), реализованную с использованием Node.js и Express. Сервер отвечает за API, взаимодействует с базой данных и обслуживает статические файлы фронтенда. ## Оглавление 1. [Описание проекта](#описание-проекта) 2. [Технологии](#технологии) 3. [Установка и запуск](#установка-и-запуск) * [Клонирование](#клонирование) * [Установка зависимостей](#установка-зависимостей) * [Настройка окружения](#настройка-окружения) * [Запуск проекта](#запуск-проекта) 4. [Структура проекта](#структура-проекта) 5. [Основные модули](#основные-модули) 6. [PM2 конфигурация](#pm2-конфигурация) 7. [Контакты](#контакты) ## Описание проекта Проект **EEV\_Proj** представляет собой веб-приложение с клиентской и серверной частями. Ветка `server` содержит сервер, который: * Обрабатывает HTTP-запросы и предоставляет REST API. * Подключается к базе данных для хранения и извлечения данных. * Раздаёт статические файлы фронтенда (HTML/CSS/JS). * Поддерживает кластерный запуск через PM2. ## Технологии * **Node.js** — среда выполнения JavaScript. * **Express** — веб-фреймворк для Node.js. * **PM2** — процесс-менеджер для Node.js приложений. * **MySQL / PostgreSQL / MongoDB** (в зависимости от вашей настройки) — СУБД. * **JavaScript (ES6+)** — основной язык разработки. ## Установка и запуск ### Клонирование ```bash git clone https://github.com/IprokK/EEV_Proj.git cd EEV_Proj git checkout server ``` ### Установка зависимостей ```bash npm install ``` ### Настройка окружения Создайте файл `.env` в корне проекта и добавьте необходимые переменные: ```dotenv # Сервер PORT=3000 # База данных DB_HOST=localhost DB_PORT=5432 DB_USER=your_username DB_PASS=your_password DB_NAME=your_database ``` ### Запуск проекта * **Обычный запуск** ```bash node server.js ``` * **Через PM2** ```bash pm2 start ecosystem.config.js --env production ``` Откройте браузер и перейдите по адресу `http://localhost:/`. ## Структура проекта ``` EEV_Proj/ ├── public/ # Статические файлы фронтенда (HTML, CSS, JS) ├── src/ # Исходники клиентской части: │ ├── index.html # Основной HTML-шаблон приложения │ ├── index.js # Точка входа React: монтирует корневой компонент │ ├── App.js # Корневой React-компонент приложения │ ├── components/ # Папка переиспользуемых React-компонентов │ │ └── … # Компоненты (например, Header, Footer, Dashboard и т.д.) │ ├── services/ # Модуль для работы с API (REST-запросы к серверу) │ │ └── api.js # Пример файла с конфигурацией запросов │ ├── utils/ # Утилитарные функции и хелперы (валидация, форматирование) │ ├── styles/ # Глобальные стили и темы (CSS/SCSS файлы) │ └── assets/ # Статические ресурсы (изображения, шрифты) ├── .env # Переменные окружения (не хранится в репозитории) ├── db.js # Модуль подключения к базе данных ├── server.js # Точка входа сервера (Express application) ├── ecosystem.config.js # Конфигурация для PM2 ├── package.json # Описание зависимостей и npm-скрипты └── README.md # Описание проекта (вы находитесь здесь) ``` ## Основные модули * **server.js** — стартовый файл, инициализирует Express, настраивает middleware, роуты и запускает сервер. * **db.js** — конфигурирует подключение к базе данных через выбранный драйвер. * **public/** — содержит готовый к раздаче фронтенд (сборка или статические файлы). * **src/** — содержит исходники клиентской части (React-компоненты, сервисы, утилиты). * **ecosystem.config.js** — позволяет управлять процессом сервера через PM2. ## PM2 конфигурация Файл `ecosystem.config.js` позволяет управлять процессом сервера в продакшене: ```js module.exports = { apps: [{ name: "EEV_Server", script: "server.js", env: { NODE_ENV: "development", }, env_production: { NODE_ENV: "production", } }] }; ``` Запуск в режиме продакшен: ```bash pm2 start ecosystem.config.js --env production pm2 logs EEV_Server ``` ## Контакты Если у вас возникли вопросы или предложения, создайте issue в репозитории или напишите Ilya Nice напрямую.