API de Gerenciamento de Projetos e Tarefas em um Quadro Kanban! Esta API foi desenvolvida utilizando Spring Boot e oferece funcionalidades para gerenciar projetos, tarefas e colaboração entre usuários em um ambiente de quadro Kanban.
- Cadastro de Usuários: Os usuários podem se cadastrar fornecendo informações básicas como nome, email, senha e foto de perfil.
- Login: Autenticação segura utilizando Spring Security e JWT (JSON Web Tokens).
- Atualizar Perfil: Os usuários podem alterar foto e nome
- Atualizar Senha: Os usuários pode trocar de senha
- Criação de Projetos: Usuários podem criar novos projetos.
- Convite de Membros: O criador do projeto pode compartilhar o ID do projeto para que outros usuários possam se juntar como membros.
- Acompanhamento de Progresso: A API permite acompanhar o progresso do projeto com base na quantidade de tarefas concluídas.
- Criação de Tarefas: Membros do projeto podem criar tarefas.
- Movimentação de Tarefas: As tarefas podem ser movidas entre diferentes estágios do quadro Kanban (ex: "A Fazer", "Em Progresso", "Concluído").
- Swagger UI: A API está documentada utilizando Swagger, permitindo uma fácil visualização e teste dos endpoints diretamente no navegador.
- Spring Boot: Framework principal para desenvolvimento da API.
- Spring Security: Para autenticação e autorização.
- Spring Data JPA: Para persistência de dados e interação com o banco de dados.
- AWS S3: Para armazenamento de imagens.
- JWT (JSON Web Tokens): Para autenticação segura.
- Swagger: Para documentação da API.
- Banco de Dados: Foi utilizado um banco de dados relacional PostgreSQL para armazenar informações de usuários, projetos e tarefas.
- Java 17
- Maven
- AWS S3 Bucket configurado
- Banco de dados relacional configurado
-
Clone o repositório:
git clone git@github.com:karoldm/k-board-api.git cd k-board-api
-
Configure o arquivo application.properties:
spring.application.name=k-board-api spring.datasource.url=jdbc:postgresql://localhost:5432/kboard spring.datasource.username=username spring.datasource.password=password spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true spring.jpa.show-sql=true api.security.token.secret=jwt_token api.aws.access-key=aws_access_key api.aws.secret-key=aws_secret_key api.aws.bucket-url=bucket_url spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
-
Excecute o projeto
- A API estará disponível em http://localhost:8080.
- A documentação Swagger estará disponível em http://localhost:8080/swagger-ui.html.
API hospedada no Render
Banco de dados hospedado no Koyeb
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull request ❤️