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".
- 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"
}
- Listar Tarefas
- Listagem de todas as tarefas criadas.
- Buscar Tarefa por ID
- Busca de uma tarefa específica pelo ID.
- Atualizar Tarefa
- Atualização das informações de uma tarefa existente.
- Excluir Tarefa
- Exclusão de uma tarefa existente.
- 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.
- Documentação
- Implementação de documentação utilizando Swagger.
- Link para acessar na máquina ->
http://localhost:8080/
- Java 17 ou superior
- IDE (Eclipse, IntelliJ, VSCode)
- Maven 3.2.5 ou superior
- Docker
- Clone o repositório na sua máquina
git clone https://github.com/lucasmoraist/task-list.git
- Acesse o diretório do projeto
cd task-list
- Execute o Docker Compose para criar o container do banco de dados
docker-compose up -d
- Faça o build da aplicação
Linux
mvn clean package \
[email protected] \
-Dspring.mail.password="passwordExample" \
-Dapi.security.token.secret=developer
Windows
mvn clean package ^
[email protected] ^
-Dspring.mail.password="passwordExample" ^
-Dapi.security.token.secret=developer
- Execute o arquivo jar gerado pelo build
Linux
java -jar target/task-list-0.1.0-SNAPSHOT.jar \
[email protected] \
--spring.mail.password="passwordExample" \
--api.security.token.secret=developer
Windows
java -jar target/task-list-0.1.0-SNAPSHOT.jar ^
[email protected] ^
--spring.mail.password="passwordExample" ^
--api.security.token.secret=developer
- Build da imagem Docker
docker build -t task-list .
- Execute o container
Linux
docker run -d \
-e [email protected] \
-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
- 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 são bem-vindas! Sinta-se à vontade para enviar pull requests com melhorias, correções de bugs ou novos recursos.