README.md

Цифровой рынок с множественными магазинами

overview

Особенности

  • Поддерживает маркет с одним и несколькими магазинами / несколькими поставщиками;
  • Все реактивно, в режиме реального времени и очень быстро;
  • Платформа беззаголовочной торговли, которая позволяет реализовывать различные магазины, пользовательские интерфейсы администратора и клиентские приложения. Предоставляет богатые API для GraphQL, REST и WS;
  • Мобильное приложение для заказов для клиентов, чтобы делать заказы по требованию (гибридный / PWA, iOS и Android с использованием Ionic / Ionic Native);
  • Мобильное приложение перевозчика (водителя) для доставки перевозчиками, водителями или поставщиками услуг (iOS и Android с использованием Ionic / Ionic Native);
  • Настройка веб-сайта электронной коммерции для покупок, чтобы клиенты могли совершать покупки товаров или услуг в браузере;
  • Торговое планшетное приложение для магазинов/продавцов/складов для управления и отслеживания заказов, организации поставок и т.д.;
  • Веб-сайт администратора, используемый для управления всеми функциями и настройками платформы в едином веб-интерфейсе;
  • Многоязычные и культурные настройки всюду в платформе (i18N);
  • Каталоги товаров (глобальные и для каждого продавца) с несколькими изображениями товаров;
  • Управление складами и управление/обработка заказов в режиме реального времени на платформе;
  • Управление поставками/доставкой и обработка на платформе (доставка с отслеживанием местоположения заказов в режиме реального времени);
  • Скидки, акции и обновления доступности товаров/услуг в режиме реального времени;
  • Регистрация клиентов, гостевой заказ, приглашения (по желанию);
  • Шлюз и обработка платежей;
  • Плагины/Расширения/Пользовательские поля (WIP).

Технологический стек и требования

  • TypeScript;
  • NodeJs / NestJs;
  • Ionic (v5) для мобильного приложения для покупок, доставщика и приложения для планшета продавца;
  • Торговый сайт разработан с помощью Angular (v9.1) с использованием Angular Starter;
  • Сайт администратора разработан с помощью Angular (v9.1) с использованием ngx-admin;
  • Бэкенд/Сервер разработан с помощью Nest с использованием модуля Pyro. Поддерживает API реального времени GraphQL, REST и WS (WebSocket с использованием библиотеки Socket.io);
  • RxJS библиотека, используемая в большой степени во всех частях платформы;
  • InversifyJS используется для управления инверсией / внедрения зависимостей в большинстве частей платформы. В бэкэнде/API также используется DI, предоставляемые Nest;
  • MongoDB База данных, используется с Mongoose ORM (поддерживаемая версия MongoDB >= 3.2; рекомендуется версия >=4);
  • Для продакшена, интегрирован и рекомендуется использовать PM2

См. также README.md и CREDITS.md файлы в соответствующих папках со списками библиотек и программного обеспечения, включенных в Платформу, информацией о лицензиях и другими подробностями.

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

Для быстрого обзора каждого проекта на Платформе (Сервер, Администратор, Магазины и т.д.) Вы можете выполнить поиск README.md файл в корневой папке проектов. Например, см. ./core/README.md обзор, связанный с сервером (бэкендом).

Приступая к работе

Клонируйте репозиторий

Клонируйте Git репозиторий:

git clone https://github.com/alvinahmadov/emarket.git

Yarn

В настоящее время используется “Yarn” (вместо “npm”), поэтому перед запуском платформы убедитесь, что у вас установлена последняя версия Yarn:

npm install -g yarn@latest

Быстрая установка

После клонирования репозитория git просто выполните следующую команду для установки/начальной загрузки всех зависимостей:

yarn bootstrap

Приведенная выше команда устанавливает необходимые пакеты во всех проектах платформы, использующих Lerna.

Примечание: если по какой-либо причине вышеприведенная команда завершится неудачно, вы можете попытаться установить необходимые пакеты вручную, запустив “yarn” в каждой подпапке папки “пакеты” с файлом “package.json”.

Сборка

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

yarn build:all

Примечание: параллельная сборка доступна с помощью команды yarn build

Lerna (ручная установка)

Используется Lerna для управления монорепозиториями.

Вам нужно выполнить следующую команду из рабочей папки, в которой вы клонировали репозиторий git, который устанавливает Lerna вместе с другими пакетами:

yarn

Вместо этого вы можете установить Lerna по глобально:

npm install lerna@latest -g

Теперь, после установки Lerna (локально или глобально), вам необходимо загрузить все зависимости вручную:

yarn lerna bootstrap

Приведенная выше команда устанавливает все необходимые пакеты для каждого подпроекта Платформы.

Примечание: если по какой-либо причине вышеприведенная команда завершится неудачно, вы можете попытаться установить необходимые пакеты вручную, запустив “yarn” в каждой подпапке с файлом “package.json”.

После загрузки Lerna все, что вам нужно, чтобы запустить сборку для всех проектов, как описано выше в разделе ‘Сборка’.

MongoDB

Платформа настроена на использование MongoDB по умолчанию и предполагает, что служба MongoDB запущена и принимает подключения на локальном хосте по умолчанию:27017. Пожалуйста, смотрите документацию для MongoDB.

Запуск подпроектов платформы

После того, как вы все построите, каждый проект может быть запущен одной командой из этого списка:

  • Запустите сервер yarn run:server
  • Запустите сайт администратора yarn run:admin и откройте http://localhost:4200
  • Запустите мобильное приложение для покупок yarn run:shopmobile и откройте http://localhost:4201
  • Запустите приложение для торговца yarn run:merchant и откройте http://localhost:4202
  • Запустите мобильное приложение для доставщика app yarn run:carrier и откройте http://localhost:4203
  • Запустите сайт yarn run:shopweb и откройте http://localhost:3000

Примечание 1: важна предсборка общих модулей платформы (yarn build:common or yarn build:all) перед запуском платформы (API) или приложений.

Примечание 2: во время разработки вы можете запустить сервер с помощью “yarn run:server:dev”, чтобы включить наблюдение за изменениями файлов TS

Примечание 3: при первом запуске сервер API (серверная часть) создает локальную базу данных MongoDB “ever_development” со следующим (по умолчанию) администратором

  • почта: admin@mail.com
  • пароль: admin

Вы можете использовать указанные выше учетные данные для входа в приложение администратора платформы.

Примечание 4: чтобы иметь возможность запускать каждый проект, вам нужно убедиться, что все построено, см. раздел ‘Сборка’ выше.

Безопасность

В производственной настройке все связи между клиентом и сервером (серверная часть, API) должны быть зашифрованы с использованием HTTPS/WSS/SSL (API REST, конечная точка GraphQL, Сокет.веб-сайты ввода-вывода и т.д.).

Конвейеры
0 успешных
0 с ошибкой