Este projete disponiliza uma aplicação Front-End em ReactJS e uma API no Back-End em Laravel. Possibilitando fazer a gestão de vendedores e vendas, calculando o porcentual de comissão por venda e total, junto a um relatório por email que é enviado diariamente de maneira automática.
- Aplicação constrúida com ReactJS
- Criar, Deletar and Listar Vendedores (Nome e Email)
- Criar, Deletar and Listar Vendas (Valor, Data e Vendedor)
- Comunicar com API Rest para gerenciamento dos dados
- Relacionar Vendedores e suas Vendas
- API construída com PHP/Laravel
- Criar, Alterar, Deletar e Listar Vendedores
- Criar, Deletar e Listar Vendas
- Enviar email ao final de cada dia com um relátorio com a quantidade e soma de todas as vendas
git clone https://github.com/ValdirJunior/seller-project.git
cd seller-project/seller-app
npm install
npm start
cd seller-project/seller-api
composer install
cp .env.example .env
php artisan key:generate
mysql> create database <name_of_your_database>
#configuar .env com nome do banco de dados, usuário e senha
php artisan migrate
php artisan serve
-
Este projeto utiliza a API do SendGrid para enviar email, para isso é necessário fazer a devida configuração de usuário e chaves de acesso na plataform SendGrid. Após isso adicionar .env as seguintes linhas:
SENDGRID_API_KEY="SUA_SENDGRID_API_KEY" ADMIN_EMAIL="SEU_EMAIL" ADMIN_NAME="Seller Project"
-
O processo de envio de email está configurar como comando no Scheduler para ser executado todo os dias as 23:59. Para teste pode-se aplicar o comando:
php artisan schedule:run
-
URL
/sellers
-
Method
POST
-
Parâmetros via body
Atributo Tipo do dado Descrição Obrigatório Valor padrão Exemplo name alfanumérico Nome do Vendedor sim - Vendedor 1 email alfanumérico,email Email do Vendedor sim - v1@emai.com -
Retorno
Status Code: 201
{ "success": true, "data": { "id": 4, "name": "Valdir", "email": "valdir@email.com" }, "message": "Vendedor criado com sucesso" }
-
URL
/sellers
-
Method
GET
-
Retorno
Status Code: 200
{ "success": true, "data": [ { "id": 1, "name": "Vendedor 1", "email": "v1@email.com", "commission": "85.00" }, { "id": 2, "name": "Vendedor 2", "email": "v2@email.com", "commission": "25.50" } ], "message": "Vendedores recuperados com sucesso" }
-
URL
/sales
-
Method
POST
-
Parâmetros via body
Atributo Tipo do dado Descrição Obrigatório Valor padrão Exemplo seller_id numérico ID do Vendedor sim - 1 value decimal Valor da venda sim - 100 -
Retorno
Status Code: 201
{ "success": true, "data": { "id": 1, "name": "Vendedor 1", "email": "v1@email.com", "commission": 8.5, "value": "100", "date": "2020-07-08" }, "message": "Venda lançada com sucesso" }
-
URL
/sales/{seller_id}
-
Method
GET
-
Parâmetros via url
Atributo Tipo do dado Descrição Obrigatório Valor padrão Exemplo seller_id numérico ID do Vendedor sim - 1 -
Retorno
Status Code: 200
{ "success": true, "data": [ { "id": 3, "name": "Vendedor 2", "email": "v2@email.com", "commission": 8.5, "value": "100.00", "date": "2020-07-08" }, { "id": 4, "name": "Vendedor 2", "email": "v2@email.com", "commission": 17, "value": "200.00", "date": "2020-07-08" } ], "message": "Vendas recuperadas com sucesso" }