---
sidebar_position: 2
title: "Estrutura de Pastas"
---

Este mapa resume as pastas mais importantes para desenvolvimento da aplicação.

## Mapa principal

```mermaid
graph TD
    SRC[app/src/] --> AT[atividades/]
    SRC --> CO[components/]
    SRC --> CT[contexts/]
    SRC --> HK[hooks/]
    SRC --> IN[interpreters/]
    SRC --> SV[services/]
    SRC --> SH[shared/]
    SRC --> UT[utils/]
    SRC --> PG[pages/]
    AT --> PR[programacao/]
    AT --> LT[letramento/]
```

```text
app/src/
  atividades/
    programacao/
    letramento/
  components/
  contexts/
  hooks/
  interpreters/
  services/
  shared/
  utils/
  pages/
```

## Responsabilidades por pasta

- `atividades/programacao`: atividades com blocos, interpretador e renderização.
- `atividades/letramento`: atividades HTML autocontidas.
- `components`: componentes reutilizáveis da interface.
- `contexts`: estado compartilhado da aplicação.
- `hooks`: integrações e comportamento reutilizável.
- `interpreters`: execução segura de código e APIs associadas.
- `services`: persistência e serviços de apoio.
- `shared`: base comum para runtime de atividades.
- `utils`: funções utilitárias transversais.

## Pastas-chave para letramento

- `app/src/atividades/letramento`: definição das atividades HTML.
- `app/src/components/letramento`: container e navegação do runtime.
- `app/src/contexts/LetramentoStateContext.jsx`: estado de execução.
- `app/src/services/letramentoStorage.js`: progresso no `localStorage`.

## Pastas-chave para atividades de programação

- `app/src/atividades/programacao/*`: implementação de cada atividade.
- `app/src/shared/BaseGameScene.js`: ciclo de vida comum de execução.
- `app/src/interpreters/GameInterpreter.js`: execução com `js-interpreter`.

Referência externa:

- js-interpreter: https://github.com/NeilFraser/JS-Interpreter
