Skip to content

Commit

Permalink
Merge pull request htmlacademy-nodejs-api#13 from alatielle/master
Browse files Browse the repository at this point in the history
  • Loading branch information
keksobot authored Oct 29, 2023
2 parents 8cfd72c + 0730435 commit 6c8d054
Show file tree
Hide file tree
Showing 10 changed files with 409 additions and 281 deletions.
10 changes: 10 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
PORT=4000
SALT=secret
DB_HOST=127.0.0.1
DB_USER=admin
DB_PASSWORD=test
DB_NAME=six-cities
DB_MAX_RETRIES=3
DB_RETRY_TIMEOUT=1000
UPLOAD_DIRECTORY=upload
JWT_SECRET=super-secret!
87 changes: 76 additions & 11 deletions Workflow.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,82 @@
# Как работать над проектом

## Окружение
## Запуск проекта

Для удобства работы над проектом используются инструменты из **Node.js** и **npm**. Все необходимые настройки произведены. Убедитесь, что на рабочем компьютере установлен актуальный LTS релиз Node.js**. Актуальная версия **Node.js** указана в файле `package.json` в поле `node`. Затем, в терминале, перейдите в директорию с проектом и _единожды_ запустите команду:
Убедитесь, что на рабочем компьютере установлен актуальный LTS релиз **Node.js**. Актуальная версия **Node.js** указана в файле `package.json` в поле `node`.

### Установите зависимости

Выполните команду

```bash
npm install
```

Команда запустит процесс установки зависимостей проекта из **npm**.
### Разверните базу данных MongoDB

В проекте используется база данных **MongoDB** версии 4.2.

Если вы используете Docker, воспользуйтесь файлом `docker-compose.dev.yml`, расположенным в корне проекта, для быстрого разворачивания базы данных.

### Наполните базу данных

Запустите JSON-сервер с моковыми данными:

```bash
npm run mock:server
```

Сгенерируйте нужное количество предложений об аренде:

```bash
npm run cli -- --generate 100 ./mocks/mock-data.tsv http://localhost:3123/api
```

Импортируйте данные в базу данных, используя настройки подключения из файла `docker-compose`:

```bash
npm run cli -- --import ./mocks/mock-data.tsv admin test 127.0.0.1 six-cities secret
```

### Настройте переменные окружения

В корне проекта находится файл `.env.example`. Скопируйте его содержимое в файл `.env` и настройте значения переменных.

#### Переменные окружения

```bash
PORT=4000 - Порт для входящих соединений

### Сценарии
SALT=secret - Соль для хэширования паролей

DB_HOST=127.0.0.1 - IP-адрес сервера базы данных (MongoDB)

DB_USER=admin - Имя пользователя для подключения к базе данных

DB_PASSWORD=test - Пароль для подключения к базе данных

DB_PORT=27017 - Порт для подключения к базе данных (MongoDB)

DB_NAME=six-cities - Имя базы данных (MongoDB)

DB_MAX_RETRIES=3 - Максильмальное число попыток переподключения к БД

DB_RETRY_TIMEOUT=1000 - Число миллисекунд между попытками подключения к БД

UPLOAD_DIRECTORY=upload - Директория для хранения загружаемых пользователями файлов

JWT_SECRET=super-secret! - Секрет для подписи JWT-токена
```

### Запустите проект

Выполните команду

```bash
npm start
```

## Сценарии

В `package.json` предопределено несколько сценариев.

Expand Down Expand Up @@ -66,25 +132,24 @@ npm start

В процессе запуска проекта будет выполнен процесс «Сборки проекта» и запуска результирующего кода.

#### Запустить JSON-server с моковыми данными
#### Запустить проект в режиме разработки

```bash
npm run mock:server
npm run start:dev
```

#### Запустить генерацию моковых данных
#### Запустить JSON-server с моковыми данными

```bash
npm run ts ./src/main.cli.ts -- --generate 100 ./mocks/mock-data.tsv http://localhost:3123/api
npm run mock:server
```

#### Наполнить базу моковыми данными
#### Запустить консольную утилиту

```bash
npm run ts ./src/main.cli.ts -- --import ./mocks/mock-data.tsv admin test 127.0.0.1 six-cities secret
npm run cli
```


## Структура проекта

### Директория `src`
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
"compile": "tsc -p tsconfig.json",
"clean": "rimraf dist",
"ts": "ts-node",
"mock:server": "json-server ./mocks/mock-server-data.json --port 3123"
"mock:server": "json-server ./mocks/mock-server-data.json --port 3123",
"cli": "ts-node ./src/main.cli.ts"
},
"devDependencies": {
"@types/convict": "6.1.4",
Expand Down
Loading

0 comments on commit 6c8d054

Please sign in to comment.