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:
- Facilite o acesso rápido ao Matchmaker e à Vitrine
- Organize hierarquicamente os principais blocos da homepage
- Seja visualmente atrativa, coerente com a marca CORETO
- Seja responsiva (desktop e mobile)
- 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:
| Item | Detalhe |
|---|---|
| Hierarquia de informação | Visível em 1–2s de leitura |
| Proporção visual | Destaque absoluto para Matchmaker e Oportunidades |
| Elementos de captura | CTA’s (botões) com microcopy claros |
| Mockups | Desktop + Mobile |
| Navegação | Intuitiva 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ópico | Obrigató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
| Campo | Tipo | Obrigatório | Regra |
|---|---|---|---|
| id | UUID | Sim | PK |
| titulo | String (150) | Sim | Não pode ser vazio |
| tipo_oportunidade | Enum | Sim | EDITAL, DESAFIO, PROGRAMA, CHAMADA |
| resumo | String (600) | Sim | Máx 600 |
| descricao_detalhada | Text | Não | — |
| link_externo | String | Não | URL válida |
| imagem_url | String | Não | — |
| anexos | JSONB | Não | Lista |
4.1.2 Datas
| Campo | Tipo | Obrigatório |
|---|---|---|
| data_abertura | Date | Não |
| data_limite_inscricao | Date | Sim |
| data_inicio_prevista | Date | Não |
Regra:
- data_limite_inscricao >= data_abertura
4.1.3 Promotor
| Campo | Tipo | Obrigatório |
|---|---|---|
| organizador_id | UUID | Sim |
| tipo_organizador | Enum | Sim |
| possui_parceria | Boolean | Sim |
| parceiros | JSONB | Condicional |
4.1.4 Match e Elegibilidade
| Campo | Tipo | Obrigatório | Regra |
|---|---|---|---|
| areas_tematicas | Array Enum | Sim | Máx 3 |
| apoio_oferecido | Array Enum | Sim | — |
| tipo_iniciativa_elegivel | Array Enum | Não | — |
| estagio_elegivel | Enum | Não | — |
| trl_elegivel | Enum | Não | — |
4.1.5 TAGs Geradas Automaticamente
- tipo_oportunidade
- area_tematica_oportunidade
- apoio_oferecido
4.2 ENTIDADE: ORGANIZADOR
4.2.1 Identificação
| Campo | Tipo | Obrigatório |
|---|---|---|
| id | UUID | Sim |
| tipo_organizacao | Enum | Sim |
| nome | String | Sim |
| descricao | Text | Sim |
| descricao_curta | String | Não |
| cnpj | String | Sim |
| usuarios_responsaveis | Array UUID | Sim |
4.2.2 Identidade Visual
| Campo | Tipo | Obrigatório |
|---|---|---|
| logo_url | String | Sim |
| banner_url | String | Sim |
4.2.3 Estrutura
| Campo | Tipo | Obrigatório |
|---|---|---|
| problema_atuacao | Text | Não |
| produtos_servicos | Text | Não |
| publico_alvo | Array Enum | Máx 3 |
| territorio_pais | String | Não |
| territorio_estado | String | Não |
| territorio_municipio | String | Não |
| resultados_relevantes | Text | Não |
| links_oficiais | Array String | Não |
4.2.4 Classificação
| Campo | Tipo | Obrigatório |
|---|---|---|
| area_tematica | Array Enum | Sim (Máx 3) |
| estagio_inovacao | Enum (1–5) | Sim |
| o_que_busca | Array Enum | Sim |
| parceiro_desejado | Enum | Sim |
TAGs Geradas
- tipo_iniciativa
- area_tematica
- estagio_inovacao
- apoio_buscado
4.3 ENTIDADE: RESOLVEDOR
4.3.1 Identificação
| Campo | Tipo | Obrigatório |
|---|---|---|
| id | UUID | Sim |
| tipo_iniciativa | Enum | Sim |
| nome | String | Sim |
| possui_vinculo | Boolean | Sim |
| vinculo_detalhes | String | Condicional |
4.3.2 Responsável
| Campo | Tipo | Obrigatório |
|---|---|---|
| nome_responsavel | String | Sim |
| papel | String | Sim |
| String | Sim | |
| telefone_whatsapp | String | Sim |
| dedicacao | Enum | Sim |
4.3.3 Sobre
| Campo | Tipo | Obrigatório |
|---|---|---|
| descricao_curta | String | Sim |
| problema | Text | Sim |
| solucao | Text | Sim |
| publico_alvo | Array Enum | Máx 3 |
4.3.4 Classificação
| Campo | Tipo | Obrigatório |
|---|---|---|
| area_tematica | Array Enum | Sim |
| trl_grupo | Enum | Sim |
| estagio_negocio | Enum | Sim |
| apoio_buscado | Array Enum | Máx 3 |
| parceiro_desejado | Enum | Sim |
| links_oficiais | Array String | Não |
TAGs Geradas
- tipo_iniciativa
- area_tematica
- trl_grupo
- estagio_inovacao
- apoio_buscado
4.4 ENTIDADE: TALENTO
Identificação
| Campo | Tipo | Obrigatório |
|---|---|---|
| id | UUID | Sim |
| nome_completo | String | Sim |
| nome_social | String | Não |
| String | Sim | |
| telefone_whatsapp | String | Sim |
Perfil
| Campo | Tipo | Obrigatório |
|---|---|---|
| mini_bio | String (500) | Sim |
| pais | String | Sim |
| estado | String | Sim |
| cidade | String | Sim |
| String | Não | |
| github | String | Não |
| portfolio | String | Não |
Competências
| Campo | Tipo | Obrigatório |
|---|---|---|
| skills | Array String | Sim |
| senioridade | Enum | Sim |
| areas_tematicas | Array Enum | Máx 3 |
Disponibilidade
| Campo | Tipo | Obrigatório |
|---|---|---|
| horas_semana | Integer | Sim |
| tipo_atuacao | Enum | Sim |
| formato | Enum | Sim |
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
| Perfil | Permissão |
|---|---|
| ADMIN | Total |
| ORGANIZADOR | CRUD apenas seus registros |
| RESOLVEDOR | CRUD apenas seus registros |
| TALENTO | CRUD 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