# Continuidade do Projeto — Cidadão Digital Seguro

## 1. Projeto correto deste chat

Este chat corresponde ao desenvolvimento do curso/app:

**Cidadão Digital Seguro — Prevenção e Combate a Crimes Cibernéticos**

Repositório GitHub:

```text
https://github.com/aicyberproject/cidadao-digital-seguro
```

URL publicada esperada:

```text
https://aicyberproject.github.io/cidadao-digital-seguro/
```

Este projeto deve permanecer separado do outro projeto denominado **Projeto EaD CIBERCRIME**, que está sendo produzido por agentes de automação. A separação foi feita para evitar confusão de escopo, matriz curricular e materiais.

---

## 2. Locais dos clones locais

Há dois clones locais do mesmo repositório:

### Terminal do trabalho

```text
C:\Users\steniosantos.sss\Documents\_GITHUB_CURSO_EAD_PREVENCAO\cidadao-digital-seguro
```

### Terminal de casa

```text
C:\Users\steniosantos.sss\cidadao-digital-seguro
```

Ambos devem ser mantidos sincronizados com:

```powershell
git pull origin main
git status
```

O estado ideal é:

```text
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean
```

---

## 3. Escopo curricular do Cidadão Digital Seguro

O curso atual segue a trilha de seis módulos:

```text
Módulo 1 — Ecossistema de Segurança Digital
Módulo 2 — Pilares da Higiene Digital
Módulo 3 — Proteção de Dispositivos e Redes
Módulo 4 — Transações e Consumo Seguro
Módulo 5 — Catálogo de Ameaças e Golpes
Módulo 6 — Resposta a Incidentes e Denúncia
```

A decisão tomada foi manter o **Módulo 2 como Pilares da Higiene Digital**. O material do outro curso, em que o Módulo 2 era “Golpes digitais, engenharia social e prevenção de fraudes”, pertence ao **Projeto EaD CIBERCRIME** e não deve ser misturado neste repositório.

---

## 4. Estrutura técnica atual

O projeto é uma aplicação web em:

```text
React + Vite + GitHub Pages
```

Principais recursos já funcionais:

```text
- trilha progressiva de aprendizagem;
- desbloqueio sequencial de módulos;
- conteúdo por módulo em arquivos separados;
- quizzes por módulo;
- avaliação final;
- persistência de progresso via localStorage;
- certificado em PDF via jsPDF;
- deploy por GitHub Actions;
- banco central de questões por módulo;
- sorteio de 10 questões por tentativa;
- randomização de alternativas;
- botão de nova tentativa.
```

---

## 5. LocalStorage

A chave usada para salvar progresso no navegador é:

```js
cidadao-digital-seguro-progress-v2
```

Para limpar o progresso durante testes:

1. Abrir a aplicação no navegador.
2. Pressionar **F12**.
3. Ir à aba **Console**.
4. Colar e executar:

```js
localStorage.removeItem('cidadao-digital-seguro-progress-v2')
location.reload()
```

Alternativa para apagar todo o armazenamento local daquele domínio:

```js
localStorage.clear()
location.reload()
```

Para visualizar o progresso salvo:

```js
JSON.parse(localStorage.getItem('cidadao-digital-seguro-progress-v2'))
```

Para ver o quiz sorteado do Módulo 1:

```js
JSON.parse(localStorage.getItem('cidadao-digital-seguro-progress-v2')).quizVariants.m1
```

---

## 6. Banco central de questões

Foi criada a pasta:

```text
src/content/questionBank/
```

Arquivos já existentes/implementados:

```text
src/content/questionBank/index.js
src/content/questionBank/module1Questions.js
src/content/questionBank/module2Questions.js
src/content/questionBank/module3Questions.js
```

O padrão por módulo é:

```js
questionBank: questionBank.mX,
quizSize: 10,
quiz: questionBank.mX.slice(0, 10),
```

Onde `mX` corresponde ao módulo:

```text
m1, m2, m3, etc.
```

O `quiz` com `slice(0, 10)` funciona apenas como fallback. O sorteio real deve usar `questionBank` completo.

---

## 7. App.jsx — correção importante já feita

O problema anterior era que o app apenas embaralhava as mesmas 10 questões. Isso foi corrigido com as funções:

```js
function getQuizSource(moduleItem) {
  if (Array.isArray(moduleItem.questionBank) && moduleItem.questionBank.length > 0) {
    return moduleItem.questionBank
  }

  if (Array.isArray(moduleItem.quiz) && moduleItem.quiz.length > 0) {
    return moduleItem.quiz
  }

  return []
}

function getQuizSize(moduleItem) {
  if (typeof moduleItem.quizSize === 'number' && moduleItem.quizSize > 0) {
    return moduleItem.quizSize
  }

  return 10
}

function randomizeQuiz(quizSource, size = 10) {
  const selectedQuestions = shuffleArray(quizSource).slice(0, Math.min(size, quizSource.length))

  return selectedQuestions.map((questionItem) => {
    const correctOption = questionItem.options[questionItem.answer]
    const shuffledOptions = shuffleArray(questionItem.options)

    return {
      ...questionItem,
      options: shuffledOptions,
      answer: shuffledOptions.indexOf(correctOption),
    }
  })
}
```

A criação da tentativa e o botão **Nova tentativa** devem usar:

```js
randomizeQuiz(
  getQuizSource(selectedModule),
  getQuizSize(selectedModule),
)
```

E não:

```js
randomizeQuiz(selectedModule.quiz)
```

---

## 8. Módulo 1 — Estado atual

### Arquivos

```text
src/content/modules/module1.js
src/content/questionBank/module1Questions.js
```

### Status

```text
Implementado, expandido, testado e validado.
```

### Conteúdo principal

O Módulo 1 trabalha:

```text
- segurança digital como cidadania;
- responsabilidade compartilhada;
- ecossistema institucional;
- papéis de PF, MJSP e FEBRABAN;
- engenharia social;
- fraude e golpe;
- sinais de alerta;
- falsa central;
- perfil falso;
- link de falsa taxa ou falsa promoção;
- primeira resposta do cidadão;
- preservação inicial de evidências;
- leitura complementar;
- atividade prática.
```

### Questões

```text
30 questões no banco central;
10 questões sorteadas por tentativa;
alternativas embaralhadas;
nova tentativa funcional.
```

---

## 9. Módulo 2 — Estado atual

### Arquivos

```text
src/content/modules/module2.js
src/content/questionBank/module2Questions.js
```

### Status

```text
Implementado, expandido, testado e validado.
```

### Conteúdo principal

O Módulo 2 trata de:

```text
- higiene digital como rotina preventiva;
- senhas fortes, únicas e gerenciadas;
- gerenciadores de senhas;
- verificação em duas etapas;
- MFA;
- passkeys;
- proteção da conta de e-mail;
- backup e capacidade de recuperação;
- backup seguro contra ransomware e perda total;
- privacidade e minimização de dados;
- permissões, cookies e rastreamento;
- atualizações e superfície de ataque;
- exemplos práticos;
- checklist ampliado;
- atividade prática.
```

### Questões

```text
30 questões no banco central;
10 questões sorteadas por tentativa;
alternativas embaralhadas;
nova tentativa funcional.
```

---

## 10. Módulo 3 — Estado atual

### Arquivos

```text
src/content/modules/module3.js
src/content/questionBank/module3Questions.js
```

### Status

```text
Implementado, expandido e enviado ao GitHub.
```

Último push informado:

```text
6f88c3c main -> main
```

Comando já executado:

```powershell
git push origin main
```

Resultado informado:

```text
To https://github.com/aicyberproject/cidadao-digital-seguro.git
   8fe73b1..6f88c3c  main -> main
```

### Conteúdo principal

O Módulo 3 trata de:

```text
- proteção de dispositivos e redes;
- celular como carteira digital;
- bloqueio de tela;
- biometria;
- aplicativos sensíveis;
- tela bloqueada;
- chip SIM;
- IMEI;
- instalação de aplicativos por lojas oficiais;
- computador seguro;
- programas originais;
- atualizações;
- antimalware;
- firewall;
- vulnerabilidades;
- malware;
- anexos suspeitos;
- rede doméstica;
- roteador;
- senha administrativa;
- Wi-Fi;
- SSID;
- WPA2/WPA3 e WPA3;
- atualização do roteador;
- Wi-Fi público;
- trabalho remoto seguro;
- exemplos práticos;
- checklist técnico;
- atividade prática.
```

### Questões

```text
30 questões no banco central;
10 questões sorteadas por tentativa;
alternativas embaralhadas;
nova tentativa funcional prevista pelo App.jsx.
```

### Próximo teste recomendado

Depois do push, testar em localhost ou GitHub Pages:

```powershell
npm run build
npm run preview
```

No navegador:

```js
localStorage.removeItem('cidadao-digital-seguro-progress-v2')
location.reload()
```

Fluxo de teste:

```text
1. concluir Módulo 1;
2. concluir Módulo 2;
3. abrir Módulo 3;
4. percorrer conteúdo;
5. marcar videoaula;
6. marcar atividade;
7. responder quiz;
8. clicar em Nova tentativa;
9. verificar se questões mudam;
10. aprovar e conferir se o Módulo 4 é liberado.
```

---

## 11. Fontes usadas no Módulo 3

O Módulo 3 foi ampliado com base nos fascículos e materiais do projeto, especialmente:

```text
- fascículo Computadores;
- fascículo Celulares e Tablets;
- fascículo Furto de Celular;
- fascículo Redes;
- fascículo Trabalho Remoto;
- fascículo Códigos Maliciosos.
```

Principais bases conceituais incorporadas:

```text
- programas originais;
- atualizações automáticas;
- antivírus/antimalware;
- firewall;
- controle de permissões;
- apps apenas por lojas oficiais;
- bloqueio de tela;
- restrição de funções em tela bloqueada;
- proteção do chip SIM;
- anotação do IMEI;
- senha administrativa do roteador;
- senha forte do Wi-Fi;
- troca do SSID padrão;
- WPA2/WPA3 ou WPA3;
- atualização de firmware do roteador;
- separação entre uso pessoal e profissional;
- respeito às regras institucionais no trabalho remoto;
- não compartilhamento de credenciais;
- criptografia de disco;
- prevenção contra malware, links e anexos suspeitos.
```

---

## 12. Pasta de agentes deste projeto

A pasta:

```text
docs/agents/
```

pertence ao próprio projeto **Cidadão Digital Seguro** e deve permanecer neste repositório.

Arquivos existentes:

```text
agente-browser-qa.md
agente-conteudista.md
agente-qa-tecnico.md
agente-quiz.md
agente-revisor-pedagogico.md
agente-ux.md
agente-video.md
```

Esses agentes são previstos para apoiar:

```text
- expansão de conteúdo;
- revisão pedagógica;
- revisão de quiz;
- avaliação UX;
- QA técnico;
- teste browser como aluno;
- apoio a roteiros de videoaulas.
```

Não mover nem apagar essa pasta.

---

## 13. Separação com o Projeto EaD CIBERCRIME

Foi decidido:

```text
Cidadão Digital Seguro = app React/Vite deste curso de prevenção.
Projeto EaD CIBERCRIME = outro curso, produzido por agentes de automação.
```

Não misturar no repositório `cidadao-digital-seguro`:

```text
- chats do outro projeto;
- pacotes operacionais dos agentes do outro curso;
- matriz curricular divergente;
- materiais homologados do outro curso;
- README_AGENTS.md externo;
- cds-agents-workflow-pack-v2 se for do outro curso.
```

A pasta `docs/agents/` do Cidadão Digital Seguro fica mantida.

---

## 14. Commits relevantes mencionados no chat

```text
ef5276c Centraliza banco de questões do módulo 1
866fa1c Usa banco de questões no sorteio dos quizzes
6f88c3c Push mais recente após expansão do módulo 3
```

Também foram mencionados commits anteriores:

```text
32a9ace Corrige renderização da tela de certificado
472f591 Documenta fluxo de trabalho com agentes de IA
2f3eb79 Expande conteúdo e quiz do módulo 1
d0b05a1 Adiciona nova tentativa com randomização dos quizzes
```

---

## 15. Próximo passo recomendado

A próxima etapa natural é o **Módulo 4 — Transações e Consumo Seguro**.

Antes de gerar conteúdo, no próximo chat deve ser solicitado/rodado:

```powershell
Get-Content .\src\content\modules\module4.js
```

Depois, gerar três arquivos completos:

```text
src/content/modules/module4.js
src/content/questionBank/module4Questions.js
src/content/questionBank/index.js atualizado com m4
```

O Módulo 4 deve provavelmente usar como base:

```text
- fascículo Banco via Internet;
- fascículo Comércio via Internet;
- fascículo Proteção de Dados;
- fascículo Vazamento de Dados;
- materiais da campanha antifraude;
- glossário de tipologias de fraudes e golpes digitais;
- Aliança Nacional de Combate a Fraudes Bancárias Digitais.
```

Conteúdos esperados para o Módulo 4:

```text
- banco via internet;
- aplicativos financeiros;
- Pix;
- canais oficiais;
- QR Code e links de pagamento;
- falso boleto;
- falso comprovante;
- falsas compras;
- marketplace;
- reputação de vendedor;
- pagamento dentro da plataforma;
- dados de cartão;
- senhas de banco;
- cuidado com anúncios patrocinados;
- confirmação por canais oficiais;
- transações sob pressão;
- preservação de comprovantes;
- primeira reação diante de movimentação indevida.
```

---

## 16. Comandos-padrão para desenvolvimento

### Ver status

```powershell
git status
```

### Atualizar clone

```powershell
git pull origin main
```

### Instalar dependências

```powershell
npm install
```

### Build

```powershell
npm run build
```

### Preview local

```powershell
npm run preview
```

### Commit padrão de módulo

```powershell
git add src\content\modules\moduleX.js src\content\questionBank\moduleXQuestions.js src\content\questionBank\index.js
git commit -m "Expande módulo X e centraliza banco de questões"
git push origin main
```

---

## 17. Observação final para retomada

Ao iniciar nova janela, continuar dizendo:

```text
Estou desenvolvendo o projeto Cidadão Digital Seguro, app React/Vite publicado no GitHub Pages. Módulos 1, 2 e 3 já foram expandidos e centralizados com bancos de 30 questões. O próximo passo é desenvolver o Módulo 4 — Transações e Consumo Seguro, mantendo separado o Projeto EaD CIBERCRIME.
```
