- Sobre
- Tecnologias utilizadas
- Funcionalidades
- Estrutura do Banco de Dados
- Diagrama da aplicação
- Colaboradores
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.
- .NET 8
- Entity Framework Core
- Keycloak
- PostgreSQL
- FluentResults
- Swagger
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.
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.
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
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
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
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
Este projeto foi desenvolvido com a colaboração de:
Paulo Ricardo |