Skip to content

brokuka/shop-api-server

Repository files navigation

SHOP-API [SERVER]

Демонстративный проект который показывает как работает интерфейс интернет-магазина. Это серверная часть целого приложения, клиент находится по этой ссылке.

Технологии которые используется в проекте

  • Express - фреймворк для создания NodeJS сервера.
  • Nodemon - мониторинг проекта в реальном времени.
  • Typescript - Типизация для уменьшение ошибок при (-пере)использования кода.
  • tsx - библиотека для автоматической компиляции Typescript кода\файлов в JavaScript.
  • Eslint - Линтер отслеживания ошибок в коде, отдельный удобный конфиг от @antfu (как без этого писать проекты 🤷‍♂️)
  • Axios - удобная библиотека для запросов (временная).
  • cross-env - библиотека для использования\изменения переменных окружения на всех платформах.
  • bcrypt - библиотека на хеширования паролей.
  • JWT - основная защита серверных данных.
  • cookie-parser - без этой библитечки сервер не будет знать о куках в запросе.
  • cors - удобная работа с cors.
  • dotenv - знаю в ноде есть уже поддержка переменных окружения, но с этой либой работать куда удобнее.
  • envalid - библиотека для типизации переменных окружения, если не будет переменной которая используется она оповестит в консоле.
  • pg - библиотека для удобной работы с базы данных PostgreSQL.
  • slug - библиотека для преобразования строк (название продуктов).

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

Перед использованием, убедитесь что установили зависимости проекта

# npm
npm install

# pnpm
pnpm install

# yarn
yarn install

Режимы запуска

Важно! Не забывайте заполнять данные в ваши переменные окружения, файл .env-example.env добавлен исключительно как пример использования.

Локально

Вы можете запустить проект двумя способами:

  1. Продакшен start
  2. Режим разработки dev

Это было сделано для тестирования приложения вне зависимости от того какая цель запуска.

# npm
npm start
npm run dev

# pnpm
pnpm start
pnpm dev

# yarn
yarn start
yarn dev

Docker

В файле Dockerfile можно выбрать свой менеджер пакетов изменив значения переменной PACKAGE_MANAGER на ваше значение, по умолчанию это yarn.

Вы можете запустить проект двумя способами:

  1. Продакшен app
  2. Режим разработки dev_app

Для первого запуска добавляйте к запуску параметр --build

docker-compose up app
docker-compose up dev_app

Документация

/api - основная приставка для использования ручек, все ручки которые не будут с этой приставкой(помимо документации) будут считаться как неправильный путь.

На том же порту как и сервер поднимается Swagger (ссылка). Посмотреть можно по пути /swagger, а чтобы получить данные в формате JSON нужно перейти на страницу /swagger.json

Что где хостится

  • Front и Back часть находятся на Vercel
  • База данных находиться на Render

Если нашли ошибку либо опечатку в описании, пожалуйста напишите об этом создав в ишью.

About

Серверная часть интернет-магазина

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published