Git Product home page Git Product logo

mrhoss / django-sales-project Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 58 KB

Uma API REST em Django para gerenciamento de vendas, incluindo módulos para clientes, produtos, pedidos e geração de relatórios com filtros e exportação em PDF e Excel.

Dockerfile 0.62% Python 22.60% HTML 70.43% Shell 4.33% CSS 2.03%
api api-rest custom-filters customers django export-pdf invoices management orders products reports sales

django-sales-project's Introduction

Instruções para Iniciar a Aplicação com Docker

Este documento fornece instruções para construir e executar a aplicação usando Docker e Docker Compose. A aplicação está configurada com Django REST Framework (DRF).

Requisitos

  • Docker (versão recomendada 27.1.2 ou superior)
  • Docker Compose (versão recomendada 2.29.2 ou superior)

Instruções

1. Clonar o Repositório

Se você ainda não clonou o repositório, faça isso com o comando:

git clone [email protected]:MrHoss/django-sales-project.git
cd django-sales-project

2. Construir e Iniciar os Containers

Para construir a imagem Docker e iniciar os containers, execute:

docker-compose up --build

3. Executar Migrações

Após os containers estarem em execução, execute as seguintes migrações para configurar o banco de dados:

docker-compose exec web python manage.py makemigrations
docker-compose exec web python manage.py migrate
  • makemigrations cria novas migrações com base nas alterações feitas nos modelos.
  • migrate aplica essas migrações ao banco de dados.

4. Criar um Superusuário (Opcional)

Se você precisar criar um superusuário para acessar o painel de administração do Django, use o comando:

docker-compose exec web python manage.py createsuperuser

Siga as instruções no terminal para definir um nome de usuário, e-mail e senha para o superusuário.

5. Parar e Remover os Containers

Para parar os containers em execução e remover os containers, redes e volumes criados, use:

docker-compose down

6. Ver Logs

Para visualizar os logs dos containers, execute:

docker-compose logs

Ou para um container específico:

docker-compose logs <nome-do-serviço>

Substitua <nome-do-serviço> pelo nome do serviço definido no docker-compose.yml, como web.


Instruções de Uso da API

Uso de endpoints

1. Produtos

Listar Produtos

GET /api/produtos/

Exemplo de Resposta:

[
    {
        "id": 1,
        "nome": "Produto A",
        "preco": "100.00",
        "descricao": "Descrição do Produto A"
    },
    ...
]

Criar Produto

POST /api/produtos/

Corpo da Requisição:

{
    "nome": "Produto Novo",
    "preco": "150.00",
    "descricao": "Descrição do Novo Produto"
}

Atualizar Produto

PUT /api/produtos/{id}/

Corpo da Requisição:

{
    "nome": "Produto Atualizado",
    "preco": "200.00",
    "descricao": "Descrição Atualizada"
}

Deletar Produto

DELETE /api/produtos/{id}/

2. Clientes

Listar Clientes

GET /api/clientes/

Exemplo de Resposta:

[
    {
        "id": 1,
        "nome": "Cliente A",
        "email": "[email protected]"
    },
    ...
]

Criar Cliente

POST /api/clientes/

Corpo da Requisição:

{
    "nome": "Cliente Novo",
    "email": "[email protected]"
}

Atualizar Cliente

PUT /api/clientes/{id}/

Corpo da Requisição:

{
    "nome": "Cliente Atualizado",
    "email": "[email protected]"
}

Deletar Cliente

DELETE /api/clientes/{id}/

3. Grupo de Produto

Listar Grupos de Produtos

GET /api/grupo_produto/

Exemplo de Resposta:

[
    {
        "id": 1,
        "nome": "Grupo A"
    },
    ...
]

Criar Grupo de Produto

POST /api/grupo_produto/

Corpo da Requisição:

{
    "nome": "Grupo Novo"
}

Atualizar Grupo de Produto

PUT /api/grupo_produto/{id}/

Corpo da Requisição:

{
    "nome": "Grupo Atualizado"
}

Deletar Grupo de Produto

DELETE /api/grupo_produto/{id}/

4. Vendas

Listar Vendas

GET /api/vendas/

Exemplo de Resposta:

[
    {
        "id": 1,
        "cliente": 1,
        "vendedor": 1,
        "data_venda": "2024-08-20",
        "total": "500.00",
        "itens": [
            {
                "produto": 1,
                "quantidade": 2,
                "preco": "100.00"
            },
            ...
        ]
    },
    ...
]

Criar Venda

POST /api/vendas/

Corpo da Requisição:

{
    "cliente": 1,
    "vendedor": 1,
    "data_venda": "2024-08-20",
    "itens": [
        {
            "produto": 1,
            "quantidade": 2
        },
        ...
    ]
}

Atualizar Venda

PUT /api/vendas/{id}/

Corpo da Requisição:

{
    "cliente": 1,
    "vendedor": 1,
    "data_venda": "2024-08-20",
    "itens": [
        {
            "id": 1,
            "produto": 1,
            "quantidade": 3
        },
        ...
    ]
}

Deletar Venda

DELETE /api/vendas/{id}/

5. Vendedores

Listar Vendedores

GET /api/vendedores/

Exemplo de Resposta:

[
    {
        "id": 1,
        "nome": "Vendedor A",
        "email": "[email protected]"
    },
    ...
]

Criar Vendedor

POST /api/vendedores/

Corpo da Requisição:

{
    "nome": "Vendedor Novo",
    "email": "[email protected]"
}

Atualizar Vendedor

PUT /api/vendedores/{id}/

Corpo da Requisição:

{
    "nome": "Vendedor Atualizado",
    "email": "[email protected]"
}

Deletar Vendedor

DELETE /api/vendedores/{id}/

6. Relatórios

Obter Relatório em PDF

Para gerar um relatório em PDF das vendas, use a seguinte rota:

GET /api/relatorios/vendas/?data_inicial=2024-01-01&data_final=2024-12-31&vendedor=Shirley&cliente=Maria&format=pdf

Parâmetros:

  • data_inicial (opcional): Data inicial para o filtro de vendas no formato YYYY-MM-DD.
  • data_final (opcional): Data final para o filtro de vendas no formato YYYY-MM-DD.
  • vendedor (opcional): Nome do vendedor para filtrar as vendas.
  • cliente (opcional): Nome do cliente para filtrar as vendas.
  • format (opcional): O formato do relatório. Pode ser pdf ou excel. O padrão é pdf.

Obter Relatório em Excel

Para gerar um relatório em Excel das vendas, use a seguinte rota:

GET /api/relatorios/vendas/?data_inicial=2024-01-01&data_final=2024-12-31&vendedor=Shirley&cliente=Maria&format=excel

Parâmetros:

  • data_inicial (opcional): Data inicial para o filtro de vendas no formato YYYY-MM-DD.
  • data_final (opcional): Data final para o filtro de vendas no formato YYYY-MM-DD.
  • vendedor (opcional): Nome do vendedor para filtrar as vendas.
  • cliente (opcional): Nome do cliente para filtrar as vendas.
  • format (opcional): O formato do relatório. Pode ser pdf ou excel. O padrão é pdf.

django-sales-project's People

Contributors

mrhoss avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.