Este repositório representa o backend em Rails para uma aplicação de delivery, incluindo uma interface de gerenciamento de dados para usuários com as roles admin e developer.
- Consumy Application - Aplicação do consumidor
- Seller Application - Aplicação do vendedor
- Paymenty API - API de pagamento
Este projeto aborda e utiliza os seguintes conceitos e gems:
- Processos em Background: Utilização do Sidekiq para processamento assíncrono de tarefas (junto com redis).
- Paginação: Implementação de paginação para listagem de recursos (kaminari).
- Testes com RSpec e Shoulda Matchers: Testes de unidade e integração utilizando RSpec com Shoulda Matchers para simplificar as asserções.
- Cobertura de Testes com SimpleCov: Análise de cobertura de código automatizada com SimpleCov.
- Soft Delete com Discard: Implementação de exclusão suave (soft delete) utilizando a gem Discard para manter registros no banco de dados sem excluí-los fisicamente.
- Anonimização de Dados: Aplicação de técnicas para anonimização de dados sensíveis.
- API RESTful: Desenvolvimento de uma API RESTful para comunicação entre o backend e o frontend.
- Swagger: Documentação automática da API com Swagger para facilitar o entendimento e uso.
- Docker: Opção de containerização com Docker para facilitar o desenvolvimento e deployment da aplicação.
- Manipulação de Imagens: Manipulação de imagens com ferramentas específicas para processamento de mídias.
- WebSockets e SSE: Implementação de comunicação em tempo real utilizando WebSockets e Server-Sent Events (SSE) para funcionalidades como chat ou atualizações em tempo real.
- Cálculo de distância: Uso da gem geocoder para implementar o cálculo de distância em km do estabelecimento comercial para a residência do cliente.
- Threads: Utilização de threads para melhorar a concorrência e o desempenho em operações paralelas.
Para executar este projeto utilizando Docker, siga os passos abaixo:
Certifique-se de ter o Docker e o Docker Compose instalados em sua máquina.
-
Clone os repositórios relacionados:
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
-
Baixe o arquivo
docker-compose.yml
para configurar os serviços Docker necessários e insira-o na pasta raiz onde os repositórios foram clonados: -
Na raiz do projeto, onde está localizado o arquivo
docker-compose.yml
, execute o seguinte comando para construir e iniciar os serviços:docker-compose up --build
Para configurar e executar o projeto localmente sem Docker, siga os passos abaixo:
Certifique-se de ter o Redis e o Sidekiq configurados e executando localmente para o correto funcionamento da aplicação. Além disso, instale as dependências necessárias do R:
install.packages("FactoMineR")
install.packages("ggplot2")
install.packages("reshape2")
bundle install
Crie o banco de dados e execute as migrações:
rails db:create
rails db:migrate
Para iniciar o servidor localmente:
rails server
Para executar os testes automatizados:
bundle exec rspec
Certifique-se de que o Redis está instalado e rodando. Inicie o Redis com o seguinte comando:
redis-server
Em seguida, inicie o Sidekiq:
bundle exec sidekiq
Este projeto foi criado como requisito avaliativo para o programa Quero Ser Dev 9ª edição da LWSA.