Msaorc / seller-project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seller Project

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.

Requirements

Front-End

  • 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

Back-End

  • 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

Build With

Run

git clone https://github.com/ValdirJunior/seller-project.git

Front-End

cd seller-project/seller-app
npm install
npm start

Back-End

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

SendGrid API

  • 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
    

API

Criar Vendedor

  • 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"
    }

Listar Todos Vendedores

  • 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"
    }   

Lançar Nova Venda

  • 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"
    }  

Listar Vendas de um Vendedor

  • 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"
    } 

About


Languages

Language:PHP 64.5%Language:JavaScript 18.8%Language:HTML 15.3%Language:CSS 1.0%Language:Vue 0.4%