Skip to content

A REST API built with Django for sales management, featuring modules for customers, products, orders, and report generation with filtering and export options in PDF and Excel. Includes a lightweight HTML micro frontend for testing and quick interactions.

Notifications You must be signed in to change notification settings

MrHoss/django-sales-project

Repository files navigation

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 git@github.com: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": "clientea@example.com" }, ... ]

Criar Cliente

POST /api/clientes/

Corpo da Requisição:

{ "nome": "Cliente Novo", "email": "clientenovo@example.com" }

Atualizar Cliente

PUT /api/clientes/{id}/

Corpo da Requisição:

{ "nome": "Cliente Atualizado", "email": "clienteatualizado@example.com" }

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": "vendedora@example.com" }, ... ]

Criar Vendedor

POST /api/vendedores/

Corpo da Requisição:

{ "nome": "Vendedor Novo", "email": "vendedornovo@example.com" }

Atualizar Vendedor

PUT /api/vendedores/{id}/

Corpo da Requisição:

{ "nome": "Vendedor Atualizado", "email": "vendedoratualizado@example.com" }

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.

About

A REST API built with Django for sales management, featuring modules for customers, products, orders, and report generation with filtering and export options in PDF and Excel. Includes a lightweight HTML micro frontend for testing and quick interactions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published