PCR

Prefeitura da Cidade do Recife

2ª Chamada desafios de proficiência

DESAFIO – DESIGNER GRÁFICO

Feature CORETO associada: Página Inicial (Home) + Matchmaker + Vitrine de Oportunidades + Design System

1. CONTEXTO DO DESAFIO

A página inicial do CORETO é a porta de entrada para usuários de diferentes perfis (Talentos, Organizações, Resolvedores). O objetivo deste desafio é criar um design que aumente a usabilidade, clareza e engajamento, destacando especialmente:

  • Matchmaker (Sistema de Correspondência)
  • Vitrine de Oportunidades
  • Navegação intuitiva para outros módulos

Além disso, o projeto deve criar um Design System para toda plataforma CORETO, reutilizável e escalável, baseado no modelo La Ursa Design System (Prefeitura do Recife).

🔗 Referência de Design System: https://www.figma.com/design/1fxnXlmqQkkuZzdnuj3sDE/La-Ursa-DS — O Design System da Prefeitura do Recife

2. OBJETIVO PRINCIPAL

Criar uma experiência visual e de navegação intuitiva que:

  1. Facilite o acesso rápido ao Matchmaker e à Vitrine
  2. Organize hierarquicamente os principais blocos da homepage
  3. Seja visualmente atrativa, coerente com a marca CORETO
  4. Seja responsiva (desktop e mobile)
  5. Permita fácil evolução para campanhas, eventos e conteúdo editorial futuro

3. ITENS DO DESAFIO

3.1 Página Inicial (Home)

O design deve contemplar:

✔ Header claro com navegação principal e chamada ao Matchmaker
✔ Bloco de destaque rápido — “Encontre sua oportunidade / match”
✔ Vitrine de Oportunidades em foco
✔ Seção de destaques por TAGS e filtros
✔ Seção de calls-to-action secundários (ex: registrar talento, criar desafio)
✔ Footer institucional

Requisitos específicos:

ItemDetalhe
Hierarquia de informaçãoVisível em 1–2s de leitura
Proporção visualDestaque absoluto para Matchmaker e Oportunidades
Elementos de capturaCTA’s (botões) com microcopy claros
MockupsDesktop + Mobile
NavegaçãoIntuitiva e clara

3.2 Matchmaker (UI/UX)

A tela introdutória do Matchmaker precisa de:

✔ Campo de seleção de perfil do usuário
✔ Filtros avançados por TAG, área temática, tipo de oportunidade
✔ Resultados filtrados em formato de cards
✔ Sistema de “favoritar” / “salvar” resultados

Requisitos:

  • Filtros visíveis e acessíveis em todas as telas
  • Clareza no status de carregamento / sem resultados
  • UX adaptada para mobile e desktop

3.3 Vitrine de Oportunidades

Blocos que devem existir no layout:

✔ Cards das oportunidades com imagem, título, TAGs principais e CTA
✔ Sistema de paginação ou scroll infinito
✔ Filtros por área temática, tipo, data e atualidade
✔ Destaques por oportunidade em aberto

Regras visuais:

  • Cartões com estrutura clara e legível
  • TAGs visuais com cores e agrupamentos consistentes
  • Indicadores de urgência / fim próximo de inscrição

4. DESIGN SYSTEM – PARÂMETROS OBRIGATÓRIOS

O Design System do CORETO deve cobrir:

4.1 Tokens de Design

Cores

  • Paleta base (primária, secundária, acentos)
  • Neutros (cinzas, preto, branco)
  • Cores de estados (sucesso, alerta, erro)
  • Acessibilidade (contraste mínimo 4.5)

Tipografia

  • Família principal
  • Hierarquia de fontes (H1, H2, H3, Body, Captions)
  • Tamanhos responsivos

4.2 Componentes

Elementos de UI

  • Botões (primary, secondary, outline, disabled)
  • Campos de formulário (input, select, textarea)
  • Alertas e mensagens
  • Badges / TAGs
  • Cards de oportunidades
  • Avatares, ícones

4.3 Layouts Fundamentais

  • Grid system (12 colunas responsivo)
  • Espaçamentos padronizados
  • Regras de margens e paddings

4.4 Módulos / Templates

  • Header e Footer
  • Homepage (desktop + mobile)
  • Matchmaker (fluxo de filtros e resultados)
  • Página de detalhe de oportunidade
  • Page de listagem (vitrine)

5. ENTREGA ESPERADA

🎯 Protótipo navegável em Figma (ou equivalente)

  • Componentes reutilizáveis (Design System pronto)
  • Telas desktop + mobile
  • Interatividade mínima (cliques entre telas principais)

📌 Arquivo do Design System

  • Cores, tipografia, componentes e tokens documentados em Figma

📌 Guia de uso

  • Mostra como aplicar o DS em futuras telas

6. REQUISITOS TÉCNICOS (Detalhados)

TópicoObrigatório
Protótipo navegável✔ Figma (ou similar)
Mobile + Desktop✔ Responsivo
Design System✔ Total (componentes + tokens)
Identidade visual CORETO✔ Aplicada
Documentação✔ Sim

7. CRITÉRIOS DE AVALIAÇÃO

7.1 UX/UI

✔ Clareza da navegação
✔ Hierarquia visual
✔ Acessibilidade da interface
✔ Qualidade de microinterações (transições, estados)

7.2 DESIGN SYSTEM

✔ Consistência com o modelo La Ursa DS
✔ Extensibilidade futura
✔ Modularidade dos componentes
✔ Níveis claros de tokens e variáveis

7.3 RESPONSIVIDADE

✔ Telas adaptadas para ≥ 3 quebras de layout (mobile, tablet, desktop)

7.4 DOCUMENTAÇÃO

✔ Guia visual + explicação de decisões
✔ Definição de tokens com valores e uso
✔ Exemplo de aplicação em página do protótipo

8. BÔNUS (DIFERENCIAIS)

  • Kits de ícones consistentes
  • Sistema de animações DUDA
  • Acessibilidade WCAG 2.1 AA no protótipo
  • Biblioteca de componentes exportável para devs (Figma Tokens, CSS, Tailwind config)
  • Paleta de cores que integra identidade visual CORETO ao La Ursa

9. ENTREGÁVEIS

📌 Protótipo completo no Figma
📌 Arquivo Design System (separado / organizado)
📌 Documentação PDF ou MD com guia de uso
📌 Exemplo de uso aplicado na página inicial
📌 Checklist de acessibilidade e UX

DESAFIO – DESENVOLVEDOR BACKEND

CORETO 2.0 – CRUD DE TALENTO, RESOLVEDOR, ORGANIZADOR E OPORTUNIDADE

Stack obrigatória: Java Spring Boot (LTS) + PostgreSQL + OAuth2/JWT

1. CONTEXTO

A plataforma CORETO 2.0 estrutura o ecossistema de inovação por meio de quatro entidades centrais:

  • Talento (perfil individual)
  • Resolvedor (startup, laboratório, ONG, coletivo etc.)
  • Organizador (instituição promotora)
  • Oportunidade (edital, desafio, programa, chamada)

O objetivo deste desafio é implementar o CRUD completo, seguro e validado dessas quatro entidades, com normalização de dados, geração automática de tags e APIs prontas para integração com o módulo de Matching Maker.

2. OBJETIVO DO DESAFIO

Implementar backend robusto em Java Spring Boot (última versão LTS) contendo:

  • CRUD completo das 4 entidades
  • Persistência em PostgreSQL
  • Validações conforme formulários oficiais
  • Sistema de TAGs derivadas
  • Autenticação e autorização por perfil
  • Filtros e paginação
  • Testes unitários e de integração

3. REQUISITOS TÉCNICOS OBRIGATÓRIOS

Linguagem e Framework

  • Java 17+ (ou LTS vigente)
  • Spring Boot
  • Spring Data JPA
  • Hibernate

Banco de Dados

  • PostgreSQL 17
  • Migrations com Flyway ou Liquibase
  • Soft delete obrigatório

Segurança

  • OAuth2 ou JWT
  • Perfis:
    • ADMIN
    • ORGANIZADOR
    • RESOLVEDOR
    • TALENTO

Testes

  • JUnit
  • Testes unitários (Services e Validators)
  • Testes de integração (Controllers + DB)

4. MODELO DE ENTIDADES E PARÂMETROS COMPLETOS

4.1 ENTIDADE: OPORTUNIDADE

4.1.1 Identificação

CampoTipoObrigatórioRegra
idUUIDSimPK
tituloString (150)SimNão pode ser vazio
tipo_oportunidadeEnumSimEDITAL, DESAFIO, PROGRAMA, CHAMADA
resumoString (600)SimMáx 600
descricao_detalhadaTextNão
link_externoStringNãoURL válida
imagem_urlStringNão
anexosJSONBNãoLista

4.1.2 Datas

CampoTipoObrigatório
data_aberturaDateNão
data_limite_inscricaoDateSim
data_inicio_previstaDateNão

Regra:

  • data_limite_inscricao >= data_abertura

4.1.3 Promotor

CampoTipoObrigatório
organizador_idUUIDSim
tipo_organizadorEnumSim
possui_parceriaBooleanSim
parceirosJSONBCondicional

4.1.4 Match e Elegibilidade

CampoTipoObrigatórioRegra
areas_tematicasArray EnumSimMáx 3
apoio_oferecidoArray EnumSim
tipo_iniciativa_elegivelArray EnumNão
estagio_elegivelEnumNão
trl_elegivelEnumNão

4.1.5 TAGs Geradas Automaticamente

  • tipo_oportunidade
  • area_tematica_oportunidade
  • apoio_oferecido

4.2 ENTIDADE: ORGANIZADOR

4.2.1 Identificação

CampoTipoObrigatório
idUUIDSim
tipo_organizacaoEnumSim
nomeStringSim
descricaoTextSim
descricao_curtaStringNão
cnpjStringSim
usuarios_responsaveisArray UUIDSim

4.2.2 Identidade Visual

CampoTipoObrigatório
logo_urlStringSim
banner_urlStringSim

4.2.3 Estrutura

CampoTipoObrigatório
problema_atuacaoTextNão
produtos_servicosTextNão
publico_alvoArray EnumMáx 3
territorio_paisStringNão
territorio_estadoStringNão
territorio_municipioStringNão
resultados_relevantesTextNão
links_oficiaisArray StringNão

4.2.4 Classificação

CampoTipoObrigatório
area_tematicaArray EnumSim (Máx 3)
estagio_inovacaoEnum (1–5)Sim
o_que_buscaArray EnumSim
parceiro_desejadoEnumSim

TAGs Geradas

  • tipo_iniciativa
  • area_tematica
  • estagio_inovacao
  • apoio_buscado

4.3 ENTIDADE: RESOLVEDOR

4.3.1 Identificação

CampoTipoObrigatório
idUUIDSim
tipo_iniciativaEnumSim
nomeStringSim
possui_vinculoBooleanSim
vinculo_detalhesStringCondicional

4.3.2 Responsável

CampoTipoObrigatório
nome_responsavelStringSim
papelStringSim
emailStringSim
telefone_whatsappStringSim
dedicacaoEnumSim

4.3.3 Sobre

CampoTipoObrigatório
descricao_curtaStringSim
problemaTextSim
solucaoTextSim
publico_alvoArray EnumMáx 3

4.3.4 Classificação

CampoTipoObrigatório
area_tematicaArray EnumSim
trl_grupoEnumSim
estagio_negocioEnumSim
apoio_buscadoArray EnumMáx 3
parceiro_desejadoEnumSim
links_oficiaisArray StringNão

TAGs Geradas

  • tipo_iniciativa
  • area_tematica
  • trl_grupo
  • estagio_inovacao
  • apoio_buscado

4.4 ENTIDADE: TALENTO

Identificação

CampoTipoObrigatório
idUUIDSim
nome_completoStringSim
nome_socialStringNão
emailStringSim
telefone_whatsappStringSim

Perfil

CampoTipoObrigatório
mini_bioString (500)Sim
paisStringSim
estadoStringSim
cidadeStringSim
linkedinStringNão
githubStringNão
portfolioStringNão

Competências

CampoTipoObrigatório
skillsArray StringSim
senioridadeEnumSim
areas_tematicasArray EnumMáx 3

Disponibilidade

CampoTipoObrigatório
horas_semanaIntegerSim
tipo_atuacaoEnumSim
formatoEnumSim

TAGs Geradas

  • skill
  • senioridade
  • area_tematica
  • tipo_atuacao

5. ENDPOINTS OBRIGATÓRIOS

Para todas as entidades:

POST /api/v1/{entity}
GET /api/v1/{entity}/{id}
PUT /api/v1/{entity}/{id}
DELETE /api/v1/{entity}/{id} (soft delete)
GET /api/v1/{entity}?filters

Filtros:

  • Por TAG
  • Por texto
  • Por território
  • Por status
  • Paginação
  • Ordenação

6. REGRAS DE SEGURANÇA

PerfilPermissão
ADMINTotal
ORGANIZADORCRUD apenas seus registros
RESOLVEDORCRUD apenas seus registros
TALENTOCRUD apenas seu perfil

7. CRITÉRIOS DE ACEITE

  • 100% dos campos obrigatórios validados
  • TAGs recalculadas em create/update
  • Soft delete funcional
  • Filtros funcionando com paginação
  • Testes cobrindo:
    • Validação
    • Segurança
    • Fluxo completo por entidade

8. DIFERENCIAL (NÃO OBRIGATÓRIO)

  • Documentação Swagger/OpenAPI
  • DTOs separados de Entities
  • Mapper com MapStruct
  • Estrutura Clean Architecture
  • Logs estruturados
  • Auditoria (created_at, updated_at, created_by)

9. ENTREGÁVEIS

  • Repositório Git
  • Script de banco
  • Coleção Postman
  • README com instruções
  • Relatório técnico explicando decisões arquiteturais
Acessar o conteúdo