Skip to content

Latest commit

 

History

History
190 lines (150 loc) · 6.45 KB

README.md

File metadata and controls

190 lines (150 loc) · 6.45 KB

Banner GDP Flow

👨‍💻 GDP Flow

Gestão de carreira simplificada, conquistas visíveis.

Status: Concluído 🚀


📋 Índice


💻 Sobre

GDP Flow é um projeto desenvolvido ao longo de 1 final de semana durante o hackathon da ContCode Community a aplicação é uma plataforma para gestão de carreira, projetada para integrar o Ciclo de Gestão por Desempenho (GDP), o Plano de Desenvolvimento Individual (PDI) e o plano de carreira dos colaboradores em uma única solução, ajudando empresas a centralizar e organizar o desenvolvimento de seus talentos, enquanto capacita os profissionais a acompanharem sua evolução e alcançarem seus objetivos de carreira.

Foi desenvolvido com o objetivo de:

  • Dar visibilidade às conquistas: Garanta que projetos importantes e ações de impacto sejam reconhecidos pelos gestores.
  • Facilitar a gestão de performance: Acompanhe ciclos de desempenho de forma estruturada.
  • Personalizar o desenvolvimento individual: Planeje o PDI com ações claras e específicas.
  • Promover transparência e acessibilidade: Colaboradores e gestores têm acesso a informações essenciais sobre o crescimento e as conquistas.

🛠️ Tecnologias utilizadas

  • .NET 8
  • Entity Framework Core
  • Keycloak
  • PostgreSQL
  • FluentResults
  • Swagger

⚙️ Funcionalidades

Cadastro e Login

  • Integração com Keycloak para autenticação segura.

Painel de Usuário

  • Visualize informações do perfil, histórico de ciclos GDP.
  • Crie e gerencie o Plano de Desenvolvimento Individual (PDI) interativo.
  • Crie e gerencie a sua linha do tempo com os momentos mais importantes do seu ano.

🗃️ Estrutura do Banco de Dados

O banco de dados foi projetado utilizando PostgreSQL, com tabelas e relacionamentos otimizados para suportar as funcionalidades da plataforma, incluindo:

  • Usuários: Informações pessoais e perfis de acesso.
  • Habilidades: Relacionamento entre usuários e suas habilidades técnicas.
  • Momentos: Registro de marcos importantes do ciclo GDP.
  • PDI: Dados dinâmicos para o plano de desenvolvimento individual.

Diagrama banco de dados


🧩 Diagrama da aplicação:

Cadastro e login:

sequenceDiagram
    autonumber
    participant Client
    participant API
    participant Database
    participant Keycloak


    Note over Client: Registro
    Client->>API: POST /api/auth/register<br>{ email, firstName, lastName, password }
    API ->>Keycloak: Criar usuário keycloak
    Keycloak ->>API: Sucesso
    API->>Database: Criar usuário db
    Database-->>API: Sucesso
    API-->>Client: HTTP 201 Created

    Note over Client: Login
    Client->>API: POST /api/auth/login<br>{ email, password }
    API->>Keycloak: Verifica credenciais
    Keycloak-->>API: Autenticado
    API-->>Client: HTTP 200 OK + Token JWT
Loading

Gerenciamento de Usuários:

sequenceDiagram
    autonumber
    participant Client
    participant API
    participant Database

    Note over Client: Atualizar dados do usuário
    Client->>API: PUT /api/users/{userId}<br>{ firstName, lastName, email, ... }
    API->>Database: Atualizar usuário
    Database-->>API: Sucesso
    API-->>Client: HTTP 200 OK

    autonumber
    Note over Client: Obter dados do usuário
    Client->>API: GET /api/users/{userId}
    API->>Database: Buscar dados do usuário
    Database-->>API: Retorna dados
    API-->>Client: HTTP 200 OK + usuário
Loading

Criar linha do tempo com momentos:

sequenceDiagram
    autonumber
    participant Client
    participant API
    participant Database

    Note over Client: Criar momento
    Client->>API: POST /api/moment<br>{ title, description... }
    API->>Database: Criar momento
    Database-->>API: Sucesso
    API-->>Client: HTTP 201 Created

    Note over Client: Obter momentos por usuário
    Client->>API: GET /api/moment/{userId}
    API->>Database: Buscar momentos do usuário
    Database-->>API: Retorna lista de momentos
    API-->>Client: HTTP 200 OK + momentos
Loading

Criar e gerenciar PDI:

sequenceDiagram
    autonumber
    participant Client
    participant API
    participant Database

    Note over Client: Criar PDI
    Client->>API: POST /api/pdi<br>{ startDoing, stopDoing, doMore, ... }
    API->>Database: Criar pdi
    Database-->>API: Sucesso
    API-->>Client: HTTP 201 Created

    Note over Client: Atualizar PDI
    Client->>API: PUT /api/pdi<br>{ startDoing, stopDoing, doMore, ... }
    API->>Database: Atualizar pdi
    Database-->>API: Sucesso
    API-->>Client: HTTP 200 OK

    Note over Client: Obter PDI por usuário
    Client->>API: GET /api/pdi/{userId}
    API->>Database: Buscar PDI do usuário
    Database-->>API: Retorna PDI
    API-->>Client: HTTP 200 OK + PDI
Loading

🔗 Links Úteis


🤝 Colaboradores

Este projeto foi desenvolvido com a colaboração de:

Foto Paulo Ricardo
Paulo Ricardo


voltar ao topo