A progressive Node.js framework for building efficient and scalable server-side applications.
Nest framework TypeScript starter repository.
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
Nest is MIT licensed.
Функционал, который требуется реализовать:
- Регистрация и аутентификация пользователя в личном кабинете: a. пользователь при регистрации должен указать роль, email и пароль; b. аутентификацию реализовать через вход по email и паролю.
- В личном кабинете пользователь может создать объявление и разместить его на доске объявлений в общем списке. Объявление содержит название, описание, контакты продавца и изображения.
- Доска объявлений в данном случае - это список всех объявлений с многочисленными фильтрами (продумать максимально возможные варианты фильтров на своё усмотрение), который отображается на главной странице сервиса.
- Пользователь может как размещать свои объявления, так и совершать сделки в рамках других объявлений.
- Объявления имеют 2 статуса - активное и снятое с публикации.
- Продумать и реализовать вариант коммуникации между покупателем и продавцом во время совершения сделки.
- Для всех методов необходимо реализовать API-методы с документацией на Swagger.
- Покрыть весь функционал тестами. Желательно использовать TDD при разработке.
Дополнительные требования:
- Сделать обертку исходного кода в docker-образ (добавить в корневую директорию файл Dockerfile, docker-compose.yml при необходимости).
- В readme файл разместить текст данного задания, а, также, инструкцию по развертыванию проекта и основные команды для запуска.
- Исходный код выложить на github.com в публичный репозиторий.
- При создании коммитов писать осмысленные названия.
- Использовать инструмент тестового покрытия для отображения % покрытия исходного кода тестами.
- Для проверки кода дополнительно подключить линтер на выбор.
Code on your laptop, database in container.
- Create the docker.env file
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
PGADMIN_DEFAULT_EMAIL=
PGADMIN_DEFAULT_PASSWORD=
and .env file
POSTGRES_HOST=
POSTGRES_PORT=
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
PORT=
JWT_SECRET=
JWT_EXPIRATION_TIME=
- Start container with database
docker-compose up
- Run Nest application
npm run start:dev