Skip to content

Latest commit

 

History

History
165 lines (96 loc) · 6.75 KB

Workflow.md

File metadata and controls

165 lines (96 loc) · 6.75 KB

Как работать над проектом

Окружение

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

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

Убедитесь, что на рабочем компьютере установлен актуальный LTS релиз Node.js. Актуальная версия Node.js указана в файле package.json в поле node.

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

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

npm install

Разверните базу данных MongoDB

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

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

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

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

npm run mock:server

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

npm run ./src/main.cli.ts -- --generate 50 ./mocks/mock-data.tsv http://localhost:3123/api                                                                                                                                                                                                                                         

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

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

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

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

Список переменных окружения

PROTOCOL=http - Протокол, используемый для подключения к базе данных

HOST=localhost - Имя хоста, на котором будет запущен сервер приложения

PORT=4000 - Порт, на котором будет запущен сервер приложения

SALT=secret - Соль, которая будет использоваться для хэширования паролей

DB_HOST=127.0.0.1 - Адрес, по которому будет доступна база данных.

DB_PORT=27017 - Порт, который будет использоваться для подключения к базе данных

DB_NAME=six-cities - Название базы данных, к которой будет производиться подключение

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

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

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

JWT_SECRET=1QSACZXASD12SSKJDHKAnnaQW - Секрет для подписи JWT-Токена

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

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

npm start

Сценарии

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

Скомпилировать проект

npm run compile

Создаст директорию dist и скомпилирует проект.

Удалить скомпилированный проект

npm run clean

Удаляет директорию dist. Используется перед компиляцией.

Собрать проект

npm run build

Выполняет сборку проекта: удаляет ранее скомпилированный проект и компилирует заново.

Запустить сервер в режиме разработки

npm run start:dev

Запустить JSON-server с моковыми данными

npm run mock:server

Проверить линтером

npm run lint

Запуск проверки проекта статическим анализатором кода ESLint.

Линтер проверяет файлы только внутри директории src.

Обратите внимание, при запуске данной команды, ошибки выводятся в терминал.

Запустить ts-модуль без компиляции

npm run ts -- <Путь к модулю с ts-кодом>

Пакет ts-node позволяет выполнить TS-код в Node.js без предварительной компиляции. Используется только на этапе разработки.

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

npm start

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

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

Директория src

Исходный код проекта: компоненты, модули и так далее. Структура директории src может быть произвольной.

Файл Readme.md

Инструкции по работе с учебным репозиторием.

Файл Contributing.md

Советы и инструкции по внесению изменений в учебный репозиторий.

Остальное

Все остальные файлы в проекте являются служебными. Пожалуйста, не удаляйте и не изменяйте их самовольно. Только если того требует задание или наставник.