Início Profile Projeto
Avatar de

Thomaz Coelho Machado

REST-API Financeira

  • Spring
  • MongoDB
  • JWT

REST API Financeira

🪧 Vitrine.Dev
Nome REST-API Financeira
🏷️ Tecnologias Spring, MongoDB, JWT
🚀 URL https://webapp-financeira.herokuapp.com/
🔥 Desafio https://www.alura.com.br/challenges/back-end-4

Tópicos

🔹 Descrição do projeto

🔹 Acesso

🔹 Funcionalidades

🔹 Pré-Requisitos e como Rodar o Servidor

🔹 Tecnologias

🔹 Autor

Descrição do projeto

API REST desenvolvida para fornecer a configuração de back-end para o aplicativo de controle de finanças de pessoais Finanças Webapp.
API desenvolvida em Java com o framework Spring, utiliza um sistema de autenticação stateless e banco de dados MongoDB.

Acesso

As funcionalidades da API podem ser acessadas através do aplicativo web que utiliza os endpoints para seu funcionamento.

Caso queira rodar o servidor localmente siga os passos listados aqui.

Funcionalidades

✔️ Cadastro de novos usuários e autenticação para obtenção do token de acesso

✔️ Autenticação Stateless em cada request através do JSON Web Token para acesso dos dados do usuário

✔️ Cadastro de novas despesas e receitas pelos usuários

✔️ Consulta, edição e exclusão de despesas e receitas já cadastradas pelo usuário autenticado

✔️ Consulta de um resumo das despesas, receitas e saldo de cada mês do usuário

✔️ Geração de usuário demo temporário com despesas e receitas variadas já cadastradas para demonstração

API REST

Os endpoints da API REST estão descritos abaixo.

Cadastrar novo usuário

    POST /usuarios

Criar novo usuário temporário para demonstração

    POST /usuarios/demo

Cadastrar novo usuário

    POST /usuarios

Criar novo usuário temporário para demonstração

    POST /usuarios/demo

Excluir usuário temporário

    DELETE /usuarios/{email}

Listar todas as receitas cadastradas do usuario

    GET /receitas

Listar todas as receitas do usuário com uma descrição específica

    GET /receitas?descricao={descricao}

Listar todas as receitas do usuário de um mês específico

    GET /receitas/{ano}/{mes}

Buscar informações detalhadas de uma receita por seu id

    GET /receitas/{id}

Cadastrar nova receita

    POST /receitas

Editar receita pelo id

    PUT /receitas/{id}

Excluir receita pelo id

    DELETE /receitas/{id}

Listar todas as despesas cadastradas do usuario

    GET /despesas

Listar todas as despesas do usuário com uma descrição específica

    GET /despesas?descricao={descricao}

Listar todas as despesas do usuário de um mês específico

    GET /despesas/{ano}/{mes}

Buscar informações detalhadas de uma despesa por seu id

    GET /despesas/{id}

Cadastrar nova despesa

    POST /despesas

Editar despesa pelo id

    PUT /despesas/{id}

Excluir despesa pelo id

    DELETE /despesas/{id}

Exibir um resumo das despesas e receitas do mês

    GET /resumo/{ano}/{mes}

(voltar para o início)

Pré-Requisitos

Para rodar o servidor localmente você precisa ter instalado as seguintes ferramentas: JDK, Git e Maven.

Além disso, para criar seu próprio banco de dados, é preciso ter uma conta grauita no MongoDB Cloud.

Como rodar a aplicação

  1. Clone este repositório
git clone https://github.com/thomazcm/rest-api-financeira
  1. Na página do MongoDB Atlas, clique em "Browse Collections" e crie uma nova Database com o nome que deseja usar.

  2. Volte até a pagina inicial, clique em "Connect" e em seguida "Connect your Application". Copie a URI para se conectar ao seu banco de dados.

  3. Por fim, crie uma nova JWT key para que sejam gerados os tokens de autenticação do seu servidor.

  4. Popule o arquivo env.properties na pasta raiz do repositório com as configurações do seu banco de dados:

DB_URI=
DB_DATABASE=
JWT_SECRET=

#Instruções
#DB_URI=Cole aqui a sua URI do MongoDB
#DB_DATABASE=Nome da database que foi criada
#JWT_SECRET=Cole aqui sua JWT key
  1. Por fim, navegue na linha de comando até a raiz do projeto e execute o comando:
mvnw spring-boot:run

## O servidor inciará na porta:8080 - acesse as endpoints por <http://localhost:8080> 

(voltar para o início)

Tecnologias

As seguintes ferramentas foram usadas na construção do projeto:

Tecnologias

Persistência e Deploy

Ferramentas

(voltar para o início)

Licença

Este projeto esta sob a licença MIT. Consulte o arquivo LICENSE.md para mais informações.

(voltar para o início)

Autor

Thomaz Machado🚀

Projeto desenvolvido por Thomaz Machado. Entre em contato!

Linkedin Badge Gmail Badge

(voltar para o início)