Files
rltn/README.md

146 lines
6.4 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.

# 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:<PORT>/`.
## Структура проекта
```
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 напрямую.