Português (BR) | English (US)
O Querido Diário possui um Guia para Contribuição principal que é relevante para todos os seus repositórios. Este guia traz informações gerais sobre como interagir com o projeto, o código de conduta que você adere ao contribuir, a lista de repositórios do ecossistema e as primeiras ações que você pode tomar. Recomendamos sua leitura antes de continuar.
Já leu? Então vamos às informações específicas deste repositório:
- Estrutura
- Como escolher a issue para trabalhar
- Como configurar o ambiente de desenvolvimento
- Executando o projeto com dependências externas
- Mantendo
Uma breve descrição da estrutura do repositório:
Diretório | Descrição |
---|---|
.github |
Configurações do repositório para o GitHub. |
docs |
Arquivos de documentação do repositório (README, CONTRIBUTING, etc.). |
e2e |
Testes end-to-end (👀). |
src |
Diretório do código fonte. Contém arquivos principais da aplicação (index.html, styles.sass, etc.) e subdiretórios que organizam o código fonte. |
src/app |
Diretório que organiza as funcionalidades da aplicação (diretivas, módulos, serviços, etc.) |
src/app/data |
Conjuntos de dados constantes do projeto. |
src/app/directives |
Comportamentos adicionais de elementos do projeto. |
src/app/interfaces |
Interfaces de objetos de dados e algumas funções auxiliares. |
src/app/modules |
Definições dos componentes visuais do projeto. |
src/app/modules/components |
Componentes genéricos a serem usados no projeto (card, modal, etc.). |
src/app/modules/layouts |
Estruturas genéricas a serem usadas no projeto (coluna, seção, etc.). |
src/app/modules/pages |
Definições de forma e funcionalidade das páginas do projeto. |
src/app/services |
Serviços de requisição e/ou entrega de dados/conteúdo. |
src/app/stores |
Serviços de armazenamento de estado. |
src/assets |
Arquivos de conteúdo estático (fontes, ícones, imagens e conteúdo textual). |
src/assets/fonts |
Fontes tipográficas utilizadas no projeto. |
src/assets/icons |
Ícones (geralmente SVG) utilizados no projeto. |
src/assets/images |
Arquivos de imagem usados no projeto (em desuso, dar preferência a CDN). |
src/assets/pages |
Arquivos de conteúdo textual a ser consumidos pelos serviços e inseridos nas páginas do projeto. |
src/environments |
Configurações de ambientes de desenvolvimento e produção. |
Além das issues marcadas como good first issue
e priority
, como indicadas no Guia para Contribuição, também há algumas etiquetas importantes específicas do repositório do frontend:
backend dependency
: Normalmente são issues mais complexas pois as demandas podem surgir no frontend mas necessitam do desenvolvimento em outros repositórios do projeto. Se as outras etapas do projeto ainda não foram desenvolvidas, não vale a pena investir tempo na issue.ui/ux
: Algumas demandas serão inteiramente dedicadas ao desenho de interfaces ou serão melhor endereçadas com esse esforço. Normalmente é melhor trabalhar nelas com experiência de frontend e também de design UI/UX, preferencialmente em equipe.graphic design
: Pode ser que ilustrações, imagens, ícones sejam necessários para algumas issues, se tiver experiência com esse tipo de trabalho, essas são pra você!
Ao escolher issues de desenho de interfaces ou de desenho gráfico, se atente aos estilos do projeto. Você também pode achar útil a documentação de design do frontend.
O projeto utiliza Node.js e Yarn. Utilizamos também o nvm, um gerenciador de versão de node.js
. Para saber a versão do node.js
, a lista de dependências e suas versões, veja o arquivo package.json
.
A seguir, veja como instalar todas essas ferramentas em seu sistema operacional.
-
Instale o
nvm
. -
Com o
nvm
instalado, utilize-o para instalar a versão denode.js
adequada para o projeto:
nvm install v16.2.0
- Ao instalar
node.js
, o gerenciador de pacotesnpm
é instalado junto. Utilize-o para obter oyarn
:
npm install --global yarn
- Agora, no diretório raíz do projeto, instale as dependências utilizadas.
yarn
- Pronto! Agora você já pode começar a editar o código.
Parte das funcionalidades do frontend do Querido Diário dependem de recursos externos e será necessário configurá-los localmente ou utilizar os de produção (se possível) para modificar ou testar certas funcionalidades. As dependências são:
Para realizar buscas de conteúdo em diários, consultar dados de municípios cadastrados no QD, consultar dados de CNPJs e envio de emails de sugestões, é necessário interagir com a API do QD.
É possível utilizar a API de produção, principalmente se precisar de dados que demoram a ser coletados (e na API de produção já estão prontos para consulta) e o seu uso da API for de intensidade leve. Neste caso, não é necessário alterar nada no repositório, já configurado para acessar a API de produção.
Porém, em outros casos será necessário configurar localmente a API. Para isso, altere a constante API
no arquivo src/app/constants.ts
de 'https://queridodiario.ok.org.br/api'
para 'http://0.0.0.0:8080'
(ou 'http://localhost:8080'
), e execute localmente (como instruído na documentação de configuração de ambiente da API) para consumir seus dados.
Se for necessário popular a API local com muitos dados, será necessário executar o fluxo completo do QD, da raspagem à disponibilização pela API. Nesses casos, consulte como configurar o Querido Diário de ponta-a-ponta.
As funcionalidades de busca e alertas do Querido Diário: Tecnologias na Educação dependem inteiramente do backend.
Não é possível utilizar o backend de produção. Para testar qualquer funcionalidade referente ao QD-Edu, será necessário configurar o backend localmente. Para isso, altere a constante educationApi
no arquivo src/app/services/utils/index.ts
de 'https://backend-api.queridodiario.ok.org.br/api/'
para 'http://0.0.0.0:8000/api/'
(ou 'http://localhost:8000/api/'
), e execute localmente (como instruído na documentação de configuração de ambiente da API) para utilizar o backend local.
Se for necessário configurar a API e o backend do QD ao mesmo tempo, se atente ao uso correto de pods e containers para que os dois serviços possam ser levantados (dentro do mesmo pod com as duas portas abertas ou em pods diferentes) ou consulte como configurar o Querido Diário de ponta-a-ponta.
As pessoas mantenedoras devem seguir as diretrizes do Guia para Mantenedoras do Querido Diário. Assim como a documentação de design do frontend também traz informações importantes.