Skip to content

brokuka/shop-api-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0b87a96 · Jun 10, 2024
Apr 24, 2024
Apr 24, 2024
Apr 27, 2024
Jun 10, 2024
Dec 9, 2023
Jun 10, 2024
Apr 24, 2024
Dec 9, 2023
May 5, 2024
May 3, 2024
Apr 24, 2024
Apr 24, 2024
Apr 27, 2024
May 3, 2024
Apr 27, 2024
Apr 27, 2024

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