Code Monkey home page Code Monkey logo

java-todolist's Introduction

Spring Boot

Java version 17.0.6 Maven version 3.9.5 Spring version 3.0.11 Lombok version 1.18.30

💻 Projeto

Esse projeto é uma API REST, onde podemos cadastrar usuários que podrá gerenciar tarefas caso esteja autenticado, as tarefas que o usuário poderá gerenciar serão:

  • Cadastrar uma tarefa;
  • Listar suas tarefas;
  • Editar as informações de uma tarefa;
  • Excluir uma tarefa;

🧐 Diagramas

Funcionamento das requisições

sequenceDiagram
    participant client
    participant auth
    participant /users
    participant /tasks
    participant repository
    client->>/users: (POST) body: { username, name, password }
    /users->>repository: { id, username, password, createdAt }
    /users->>client: { status: 201, "Usuário criado com sucesso" }
    client->>/tasks: (POST) body: { title, description, startAt, endAt, priority }, basicAuth: { username, password }
    /tasks->>auth: basicAuth: { username, password }
    auth->>/tasks: request: { ..., idUser }
    /tasks->>repository: { id, idUser, title, description, startAt, endAt, priority, createdAt }
    /tasks->>client: { status: 200, { id, idUser, title, description, startAt, endAt, priority, createdAt } }
    client->>/tasks: (GET) url_param: { id }, basicAuth: { username, password }
    /tasks->>auth: basicAuth: { username, password }
    auth->>/tasks: request: { ..., idUser }
    /tasks->>repository: { idUser }
    repository->>/tasks: [..., { id, idUser, title, description, startAt, endAt, priority, createdAt }]
    /tasks->>client: { status: 200, [..., { id, idUser, title, description, startAt, endAt, priority, createdAt }]}
    client->>/tasks: (PUT) url_param: { id }, basicAuth: { username, password }, body: { title, description, startAt, endAt, priority }
    /tasks->>auth: basicAuth: { username, password }
    auth->>/tasks: request: { ..., idUser }
    /tasks->>repository: { id }
    repository->>/tasks: { id, idUser, title, description, startAt, endAt, priority, createdAt }
    /tasks->>repository: { ...task, ...body }
    /tasks->>client: { status: 200, { id, idUser, title, description, startAt, endAt, priority, createdAt } }
    client->>/tasks: (DELETE) url_param: { id }, basicAuth: { username, password }
    /tasks->>auth: basicAuth: { username, password }
    auth->>/tasks: request: { ..., idUser }
    /tasks->>repository: { id }
    /tasks->>client: { status: 200, "Tarefa excluída com sucesso." }
Loading

Sistema de autorização

flowchart TD
  A[request to /tasks] --> B{Are username and password correct?};
  B -- yes --> C[make request]
  B -- no --> D[Status Code: 401 message: 'Unauthorized']

Loading

💻 Tecnologias

Para a realização desse projeto foi utilizado o framework Spring Boot assim foi possível cadastrar minhas rotas e utilizar o potencial dos notations removendo uma camada de complexidade com a automação do spring-boot. As notations poupa bastante tempo de escrita de código com uma biblioteca robusta como o spring-boot, e para deixar o desenvolvimento mais eficiênte, foi utilizado o lombok isso fez com que o desenvolvimento fosse feito em menos tempo e com uma qualidade de entrega melhor, pois deixou o código mais legível. Já para lidar com as persistencias no repository foi utilizado o starter-data-jpa, e o h2database para a persistencia dos dados, por ser um projeto para fins de aprendizados, simplifica boa parte do processo.

✍️ Instrução

Pré configuração.

Para executar esse projeto será necessário ter o JDK17 e o maven instalado e configurado de acordo com seu sistema operacional.

Agora você deve executar o seguinte comando no seu terminal:

# instalação dos pacotes
$ mvn clean install

# Execução do servidor
$ mvn spring-boot:run

Agora você poderá testar com a utilização de uma ferramenta como por exemplo: insomnia ou postman

java-todolist's People

Contributors

moisessantana 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.