Skip to content

Task List é uma aplicação de gerenciamento de tarefas construída com Spring Boot e PostgreSQL. Permite criar, atualizar e excluir tarefas, com autenticação via JWT e documentação acessível pelo Swagger.

License

Notifications You must be signed in to change notification settings

lucasmoraist/task-list

Repository files navigation

Task List - Backend

Spring Apache Maven Postgres Docker

Descrição

O projeto Task List é uma aplicação de gerenciamento de tarefas que permite aos usuários criar, ler, atualizar e excluir tarefas de forma eficiente. Ideal para organizar suas atividades diárias. Nele é possível adicionar comentários dentro das tarefas criadas, além como mudar o status da tarefa para "Pendente", "Em Progresso" e "Concluído".

Funcionalidades

  1. Criação de Tarefas
    • Título: Nome da tarefa.
    • Descrição: Descrição detalhada da tarefa (opcional).
    • Status: Estado da tarefa (PENDING, IN_PROGRESS, COMPLETED).
{
  "title": "Exemplo de Tarefa",
  "description": "Esta é uma tarefa de exemplo.",
  "status": "PENDING"
}
  1. Listar Tarefas
    • Listagem de todas as tarefas criadas.
  2. Buscar Tarefa por ID
    • Busca de uma tarefa específica pelo ID.
  3. Atualizar Tarefa
    • Atualização das informações de uma tarefa existente.
  4. Excluir Tarefa
    • Exclusão de uma tarefa existente.
  5. Autenticação e Autorização
    • Implemente autenticação JWT (JSON Web Token) para proteger a API.
    • Use Spring Security para gerenciar usuários e permissões.
  6. Documentação
    • Implementação de documentação utilizando Swagger.
    • Link para acessar na máquina -> http://localhost:8080/

Instruções de Instalação

Pré-requisitos

  • Java 17 ou superior
  • IDE (Eclipse, IntelliJ, VSCode)
  • Maven 3.2.5 ou superior
  • Docker

Etapas

  1. Clone o repositório na sua máquina
git clone https://github.com/lucasmoraist/task-list.git 
  1. Acesse o diretório do projeto
cd task-list
  1. Execute o Docker Compose para criar o container do banco de dados
docker-compose up -d
  1. Faça o build da aplicação

Linux

mvn clean package \ 
  -Dspring.mail.username=email@example.com \
  -Dspring.mail.password="passwordExample" \
  -Dapi.security.token.secret=developer

Windows

mvn clean package ^
  -Dspring.mail.username=email@example.com ^
  -Dspring.mail.password="passwordExample" ^
  -Dapi.security.token.secret=developer
  1. Execute o arquivo jar gerado pelo build

Linux

java -jar target/task-list-0.1.0-SNAPSHOT.jar \
  --spring.mail.username=email@example.com \
  --spring.mail.password="passwordExample" \
  --api.security.token.secret=developer

Windows

java -jar target/task-list-0.1.0-SNAPSHOT.jar ^
  --spring.mail.username=email@example.com ^
  --spring.mail.password="passwordExample" ^
  --api.security.token.secret=developer

Docker

  1. Build da imagem Docker
docker build -t task-list .
  1. Execute o container

Linux

docker run -d \
  -e MAIL_USERNAME=seu_email@example.com \
  -e MAIL_PASSWORD=sua_senha \
  -e JWT_SECRET=sua_chave_secreta \
  -e PROFILE=dev \
  -e DATABASE_HOST=localhost \
  -e DATABASE_PORT=5432 \
  -e DATABASE_NAME=meu_banco \
  -e DATABASE_USER=meu_usuario \
  -e DATABASE_PASSWORD=minha_senha \
  -p 8080:8080 \
  task-list

Windows

docker run -d ^
  -e MAIL_USERNAME=seu_email@example.com ^
  -e MAIL_PASSWORD=sua_senha ^
  -e JWT_SECRET=sua_chave_secreta ^
  -e PROFILE=dev ^
  -e DATABASE_HOST=localhost ^
  -e DATABASE_PORT=5432 ^
  -e DATABASE_NAME=meu_banco ^
  -e DATABASE_USER=meu_usuario ^
  -e DATABASE_PASSWORD=minha_senha ^
  -p 8080:8080 ^
  task-list

Instruções de Uso

  • Com o projeto em execução, abra sua ferramenta para testes de requisições (Insomnia ou Postman).
  • Importe o arquivo json que está em ./collection e já será possível realizar os testes.

Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para enviar pull requests com melhorias, correções de bugs ou novos recursos.

Contatos

About

Task List é uma aplicação de gerenciamento de tarefas construída com Spring Boot e PostgreSQL. Permite criar, atualizar e excluir tarefas, com autenticação via JWT e documentação acessível pelo Swagger.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published