Skip to content

Marrowsed/Desafio_Alura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DjangoREST Postgres Python CodeQL

Desafio_Alura

Alura Challenge Back-End 2

Tecnologias Usadas

Django Rest Framework

  • Django - O propósito do Django está no desenvolvimento de aplicações web e sites.
  • Django Rest Framework - Desenvolvimento de web API'S de forma simples e ágil.

Controle Financeiro

Uma API onde você controla seu controle financeiro separado por:

Métodos Disponíveis

  • GET - Retornando Informações
  • POST - Inserir Informações
  • PUT - Atualizar Informações
  • DELETE - Deletar Informações

Endpoints

Cadastro

Necessário para utilizar todos os endpoints !
  • /registro [POST]
Exemplo de Envio
{
  "username": "Usuário",
  "password": "Senha",
  "password2": "Senha",
  "email": "E-mail",
  "first_name": "Nome",
  "last_name": "Sobrenome"
}

Exemplo de Sucesso

{
	"username": "Usuário",
	"email": "E-mail",
	"first_name": "Primeiro Nome",
	"last_name": "Último Nome"
}

Exemplo de Erro

{
   "password": [
   	"Senhas não conferem"
   ]
}

Receitas [GET/POST/PUT/DELETE]

    Basic Auth
  • username
  • password
  • /receitas [GET]
  • Lista as Receitas
  • /receitas/ [POST]
  • Adiciona uma Receita nova
  • /receitas/{pk}/ [PUT/PATCH/DELETE]
  • Edita / Deleta uma Receita
  • /receitas/{ano}/{mês} [GET]
  • Todas as Receitas por Ano e Mês
  • /receitas/?descricao= [GET]
  • Todas as Receitas por Descrição

Exemplo de Retorno Positivo:

[
  {
  	"id": "ID da Receita",
  	"descricao": "Descrição da Receita",
  	"valor": "Valor da Receita (Ex: 1000)",
  	"data": "Data da Receita (Ex: 25-12-2000)"
  },
]

Exemplo de Retorno Negativo:

{
	"detail": "As credenciais de autenticação não foram fornecidas."
}
{
	"descricao": [
		"Este campo é obrigatório."
	],
	"valor": [
		"Este campo é obrigatório."
	],
	"data": [
		"Este campo é obrigatório."
	]
}

Despesas [GET/POST/PUT/DELETE]

    Basic Auth
  • username
  • password
  • /despesas [GET]
  • Lista as Despesas
  • /despesas/ [POST]
  • Adiciona uma Despesa nova
  • /despesas/{pk}/ [PUT/PATCH/DELETE]
  • Edita / Deleta uma Despesa
  • /despesas/{ano}/{mês} [GET]
  • Todas as Despesas por Ano e Mês
  • /despesas/?descricao= [GET]
  • Todas as Despesas por Descrição
Exemplo de Retorno Positivo:
[
  {
  	"id": "ID da Despesa",
  	"descricao": "Descrição da Despesa",
  	"categoria": "Categoria da Despesa",
  	"valor": "Valor da Despesa (Ex: 1000)",
  	"data": "Data da Despesa (Ex: 25-12-2000)"
  }
]

Exemplo de Retorno Negativo:

{
	"detail": "As credenciais de autenticação não foram fornecidas."
}
{
	"descricao": [
		"Este campo é obrigatório."
	],
	"valor": [
		"Este campo é obrigatório."
	],
	"data": [
		"Este campo é obrigatório."
	]
}

Resumo [GET]

Resumo do Saldo Total com Receita por Mês, Despesa por Mês, Despesas de Categoria por Mês, e Saldo Final

    Basic Auth
  • username
  • password
  • /resumo/{ano}/{mês} [GET]
Exemplo de Retorno Positivo:
{
  "Receita/Mês": "Somatória das Receitas por Mês",
  "Despesa/Mês": "Somatória das Despesas por Mês",
  "Categoria/Mês": [
  	{
  		"categoria": "Nome da Categoria",
  		"valor": "Somatória da Categoria por Mês"
  	}
  ],
  "Saldo Final/Mês": "Subtração de Receitas por Mês com Despesas por Mês"
}

Exemplo de Retorno Negativo:

{
	"detail": "As credenciais de autenticação não foram fornecidas."
}

Instalação

É necessária a Instalação mais recente do Python

Dependências

pip install -r requirements.txt

Configuração

  1. Crie um arquivo `.env` na mesma pasta onde está o arquivo `migrate.py`.
  2. No seu terminal com o ambiente virtual ativado, execute o comando `python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'` para gerar uma chave secreta.
  3. Substitua a chave secreta no arquivo `.env` com a chave gerada na variável `SECRET_KEY`.
  4. Substitua o endereço do banco de dados no arquivo `.env` com o endereço do banco de dados que você deseja utilizar na variável `DATABASE_URL`.
  5. Execute o comando `python manage.py migrate` para criar as tabelas do banco de dados.

Rodando o projeto

python manage.py runserver

O servidor está rodando, visite http://127.0.0.1:8000/ no seu navegador de internet

About

Alura Challenge Back-End

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published