Este projeto consiste em um sistema de gestão de projetos, com frontend desenvolvido em Vue.js e backend em Spring Boot. Abaixo, você encontrará detalhes sobre a estrutura do projeto, suas funcionalidades, configuração e como executar localmente.
Estrutura do Projeto
-
Frontend
public
src
-
components
AlterarDados.vue
AtividadeForm.vue
AtividadeList.vue
AtualizacaoModal.vue
ClienteForm.vue
ClienteList.vue
ProjetoForm.vue
ProjetoList.vue
router
services
views
App.vue
main.js
-
Backend
-
controllers
AtividadeController.java
ClienteController.java
ProjetoController.java
-
DTO
AtividadeDTO.java
ClienteDTO.java
ProjetoDTO.java
-
enumeration
StatusAtividade.java
StatusProjeto.java
-
exceptions
GlobalExceptionHandler.java
ResourceNotFoundException.java
-
models
Atividade.java
Cliente.java
Projeto.java
-
repositories
AtividadeRepository.java
ClienteRepository.java
ProjetoRepository.java
-
service
AtividadeService.java
ClienteService.java
ProjetoService.java
GestaoProjetosApplication.java
-
.idea
.mvn
Interface
node_modules
test
target
.gitignore
HELP.md
mvnw
mvnw.cmd
package.json
package-lock.json
pom.xml
vue.config.js
O sistema oferece diversas funcionalidades tanto no frontend quanto no backend. Abaixo estão as principais:
-
Cadastro e Edição de Atividades e Projetos O frontend permite cadastrar e editar informações sobre atividades e projetos, incluindo título, descrição, status e datas de início e fim.
-
Listagem de Atividades e Projetos Exibe uma lista de atividades e projetos cadastrados no sistema, com opções de filtragem e ordenação.
-
Visualização Detalhada Permite visualizar detalhes completos de uma atividade ou projeto específico.
O backend fornece endpoints RESTful para interação com o banco de dados e outras funcionalidades.
Requisitos do Ambiente Java 17 instalado. Node.js e npm instalados para o ambiente de frontend. PostgreSQL instalado e configurado. Maven instalado para o ambiente de backend. Configuração do Ambiente de Desenvolvimento Clone o repositório do projeto do GitHub:
git clone https://github.com/pablohsk/gestao_projetos
cd gestao_projetos cd Interface npm install
cd gestao_projetos mvn clean install
Abra o arquivo application.properties em src/main/resources.
Verifique as configurações em spring.datasource
e ajuste conforme necessário, incluindo o nome do banco de dados, usuário e senha.
Certifique-se de que o PostgreSQL esteja em execução e acessível.
Para iniciar o servidor Spring Boot, execute:
cd gestao_projetos mvn spring-boot:run
cd seu-projeto/Interface npm run serve
A seguir estão os endpoints disponíveis neste projeto:
Listar todas as atividades
Método: GET URL: /atividade Descrição: Retorna uma lista de todas as atividades cadastradas. Buscar atividade por ID
Método: GET URL: /atividade/{id} Descrição: Retorna os detalhes de uma atividade com base no ID fornecido. Incluir atividade
Método: POST URL: /atividade Descrição: Adiciona uma nova atividade ao banco de dados. Atualizar atividade por ID
Método: PUT URL: /atividade/{id} Descrição: Atualiza os dados de uma atividade com base no ID fornecido. Excluir atividade por ID
Método: DELETE URL: /atividade/{id} Descrição: Remove uma atividade do banco de dados com o ID fornecido. Listar todos os projetos
Método: GET URL: /projeto Descrição: Retorna uma lista de todos os projetos cadastrados. Buscar projeto por ID
Método: GET URL: /projeto/{id} Descrição: Retorna os detalhes de um projeto com base no ID fornecido. Incluir projeto
Método: POST URL: /projeto Descrição: Adiciona um novo projeto ao banco de dados. Atualizar projeto por ID
Método: PUT URL: /projeto/{id} Descrição: Atualiza os dados de um projeto com base no ID fornecido. Excluir projeto por ID
Método: DELETE URL: /projeto/{id} Descrição: Remove um projeto do banco de dados com o ID fornecido.
class Projeto {
+Long id
+String nome
+String descricao
+StatusProjeto status
+LocalDate dataInicio
+LocalDate dataFim
}
class Atividade {
+Long id
+String nome
+String descricao
+StatusAtividade status
+LocalDate dataInicio
+LocalDate dataFim
+Projeto projeto
}
class Cliente {
+Long id
+String nome
+String email
}
class ProjetoDTO {
+Long id
+String nome
+String descricao
+StatusProjeto status
+LocalDate dataInicio
+LocalDate dataFim
}
class AtividadeDTO {
+Long id
+String nome
+String descricao
+StatusAtividade status
+LocalDate dataInicio
+LocalDate dataFim
+Long projetoId
}
class ClienteDTO {
+Long id
+String nome
+String email
}
class ProjetoController {
+List~ProjetoDTO~ getAllProjetos()
+ProjetoDTO getProjeto(Long id)
+ProjetoDTO createProjeto(ProjetoDTO projetoDTO)
+ProjetoDTO updateProjeto(Long id, ProjetoDTO projetoDTO)
+void deleteProjeto(Long id)
+List~Projeto~ getProjetosAtivos()
}
class AtividadeController {
+List~AtividadeDTO~ getAllAtividades()
+AtividadeDTO getAtividade(Long id)
+AtividadeDTO createAtividade(AtividadeDTO atividadeDTO)
+AtividadeDTO updateAtividade(Long id, AtividadeDTO atividadeDTO)
+void deleteAtividade(Long id)
}
class ClienteController {
+List~ClienteDTO~ getAllClientes()
+ClienteDTO getCliente(Long id)
+ClienteDTO createCliente(ClienteDTO clienteDTO)
+ClienteDTO updateCliente(Long id, ClienteDTO clienteDTO)
+void deleteCliente(Long id)
}
class ProjetoService {
+List~Projeto~ findAll()
+Projeto findById(Long id)
+Projeto save(Projeto projeto)
+void deleteById(Long id)
+List~Projeto~ findByStatusNotConcluida()
}
class AtividadeService {
+List~Atividade~ findAll()
+Atividade findById(Long id)
+Atividade save(Atividade atividade)
+void deleteById(Long id)
}
class ClienteService {
+List~Cliente~ findAll()
+Cliente findById(Long id)
+Cliente save(Cliente cliente)
+void deleteById(Long id)
}
class ProjetoRepository {
+List~Projeto~ findAll()
+Optional~Projeto~ findById(Long id)
+Projeto save(Projeto projeto)
+void deleteById(Long id)
+List~Projeto~ findByStatusNot(StatusProjeto status)
}
class AtividadeRepository {
+List~Atividade~ findAll()
+Optional~Atividade~ findById(Long id)
+Atividade save(Atividade atividade)
+void deleteById(Long id)
}
class ClienteRepository {
+List~Cliente~ findAll()
+Optional~Cliente~ findById(Long id)
+Cliente save(Cliente cliente)
+void deleteById(Long id)
}
Projeto --> ProjetoDTO
Projeto --> Atividade : contém
Atividade --> AtividadeDTO
Cliente --> ClienteDTO
ProjetoController --> ProjetoService
AtividadeController --> AtividadeService
ClienteController --> ClienteService
ProjetoService --> ProjetoRepository
AtividadeService --> AtividadeRepository
ClienteService --> ClienteRepository
StatusProjeto : +CONCLUIDA
StatusProjeto : +EM_PROGRESSO
StatusProjeto : +PENDENTE
StatusAtividade : +CONCLUIDA
StatusAtividade : +EM_PROGRESSO
StatusAtividade : +PENDENTE
Este projeto foi desenvolvido por Pablo Fidelis Dias. Para mais detalhes, consulte o link: [link do repositório no GitHub].
Qualquer dúvida ou sugestão, sinta-se à vontade para entrar em contato. Obrigado por utilizar o Gestão de Projetos!
/ Me Contrata /