Skip to content

Latest commit

 

History

History
184 lines (116 loc) · 9.72 KB

README_ru.md

File metadata and controls

184 lines (116 loc) · 9.72 KB

Java Projects Logo Приложение для Доставки Java Projects Logo

🌐 Языки

Português Español English Русский 中文 العربية

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

Иллюстрация использования интерфейса администратора


🔗 Связанные репозитории

📚 Используемые концепции и библиотеки

🔍 Нажмите, чтобы развернуть детали библиотек и концепций
  • Фоновая обработка: Использование Sidekiq для обработки асинхронных задач. Redis используется как очередь для хранения этих задач.

  • Пагинация: Реализация пагинации для списков ресурсов с использованием библиотеки Kaminari.

  • Тестирование с RSpec и Shoulda Matchers: Использование RSpec для написания юнит-тестов, интеграционных и функциональных тестов.

  • Покрытие тестами с помощью SimpleCov: Интеграция с библиотекой SimpleCov для анализа покрытия кода.

  • Мягкое удаление с Discard: Реализация мягкого удаления с использованием библиотеки Discard.

  • Bullet для обнаружения запросов N+1: Библиотека Bullet используется для обнаружения и предотвращения проблем с производительностью, таких как запросы N+1.

  • Анонимизация данных: Применение методов анонимизации для защиты конфиденциальных данных, соответствие требованиям законодательства о защите персональных данных, таким как LGPD.

  • RESTful API: Разработка RESTful API, следуя принципам архитектуры программного обеспечения для обеспечения эффективной связи между бэкендом и фронтендом.

  • Swagger: Автоматическая документация API с использованием библиотеки Rswag (на основе Swagger).

  • Docker: Возможность контейнеризации с использованием Docker для упрощения разработки, тестирования и развертывания.

  • Обработка изображений: Использование библиотеки ImageProcessing для обработки изображений, такой как изменение размера и сжатие.

  • WebSockets и SSE: Реализация связи в реальном времени с использованием WebSockets.

  • Расчет расстояний: Использование библиотеки Geocoder для реализации расчета расстояний между клиентом и коммерческим предприятием.

  • Потоки: Использование потоков для повышения параллелизма и производительности приложения при выполнении параллельных операций.

  • Управление сессиями и аутентификация: Реализация аутентификации пользователей с использованием Devise и аутентификации через JWT.

  • Управление CORS: Использование библиотеки rack-cors для управления разрешениями CORS.

  • Автоматы состояний с помощью State Machines: Использование библиотеки state_machines-activerecord для реализации автоматов состояний в моделях ActiveRecord.

  • Faraday для работы с внешними API: Интеграция с внешними сервисами с использованием библиотеки Faraday.

  • Автоматизация задач и DevOps: Структура DevOps поддерживается такими инструментами, как Sidekiq и Docker.


⚙️ Настройка проекта

🛠️ С Docker

Предварительные требования

  • Убедитесь, что на вашем компьютере установлены Docker и Docker Compose.
  • Docker
  • Docker Compose

Настройка

  1. Клонируйте связанные репозитории:

    git clone https://github.com/SamuelRocha91/consumy.git
    git clone https://github.com/SamuelRocha91/seller_application.git
    git clone https://github.com/SamuelRocha91/paymenty.git
    git clone https://github.com/SamuelRocha91/delivery_back.git
    
  2. Скачайте файл docker-compose.yml:

  3. В корне проекта выполните следующую команду:

    docker-compose up --build
  4. Нажмите "RUN PENDING MIGRATES" в приложении бэкенда.

  5. Войдите в контейнер бэкенда и выполните сиды:

    docker exec -it backendContainerName /bin/sh 
    rails db:seed
  6. Настройте переменные окружения: Теперь все разделы переведены на русский язык, и ссылки настроены в соответствии с вашим запросом. Если вам нужно что-то еще, дайте знать!

    JWT_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx
  7. Перезапустите контейнеры, чтобы переменные загрузились.

🛠️ Без Docker

Предварительные требования

  • Убедитесь, что Redis и Sidekiq настроены и работают на вашем локальном компьютере.

  • Установите зависимости для R:

    install.packages("FactoMineR")
    install.packages("ggplot2")
    install.packages("reshape2")

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

bundle install

Настройте базу данных

Создайте базу данных и выполните миграции:

rails db:create
rails db:migrate

Запустите локальный сервер

rails server

Запустите тесты

bundle exec rspec

Запустите Redis и Sidekiq

redis-server
bundle exec sidekiq

📝 Другие проекты