Skip to content

Conteúdos para quem trabalha com Programação e Tecnologia.

License

Notifications You must be signed in to change notification settings

marlonangeli/tabnews.com.br

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

O TabNews nasceu com o objetivo de ser um local com conteúdos de valor concreto para quem trabalha com tecnologia.

Esse repositório contém o código-fonte do site e da API do TabNews.

O TabNews disponibiliza APIs públicas que você pode utilizar para construir outros projetos relacionados, desde que respeite os Termos de Uso.

Conteúdo

Instalar e rodar o projeto

Rodar o TabNews em sua máquina local é uma tarefa extremamente simples.

Dependências globais

Você precisa ter duas principais dependências instaladas:

  • Node.js LTS v18 (ou qualquer versão superior)
  • Docker Engine v17.12.0 com Docker Compose v1.24.1 (ou qualquer versão superior)

Dependências locais

Com o repositório clonado e as dependências globais instaladas, você pode instalar as dependências locais do projeto:

npm install

Rodar o projeto

Para rodar o projeto localmente, basta executar o comando abaixo:

npm run dev

Isto irá automaticamente rodar serviços como Banco de dados (incluindo as Migrations), Servidor de Email e irá expor um Serviço Web (Frontend e API) no seguinte endereço:

http://localhost:3000/
http://localhost:3000/api/v1/status

Observações:

  • Para derrubar todos os serviços, basta utilizar as teclas CTRL+C, que é o padrão dos terminais para matar processos.
  • Você pode conferir o endereço dos outros serviços dentro do arquivo .env encontrado na raiz do projeto, como por exemplo o endereço e credenciais do Banco de Dados local ou o Frontend do Serviço de Email.

Cadastro e Login de usuários

No ambiente de desenvolvimento você poderá tanto criar usuários manualmente (inclusive para receber e testar o email de ativação), quanto utilizar usuários pré-cadastrados e que já foram ativados para sua conveniência.

Criar um usuário manualmente

  1. Após subir os serviços, acesse http://localhost:3000/cadastro
  2. Preencha os dados e utilize qualquer email com formato válido, mesmo que este email não exista, por exemplo: [email protected]
  3. O backend irá enviar um email para o servidor local de emails e que pode ser acessado pelo endereço http://localhost:1080/
  4. Abra o email de Ativação e acesse o link para ativar sua conta de fato.
  5. Com a conta ativa, realize o login: http://localhost:3000/login

Utilizar usuários pré-cadastrados

Por padrão, ao rodar o comando npm run dev será injetado dois usuários ativados, um com features padrões e outro com features administrativas, como a habilidade de rodar as Migrations usando a API ou alterar o conteúdo de outros usuários. Segue abaixo as credenciais destes dois usuários ("email" + "senha"):

Rodar os testes

Há várias formas de rodar os testes dependendo do que você deseja fazer, mas o primeiro passo antes de fazer qualquer alteração no projeto é rodar os testes de forma geral para se certificar que tudo está passando como esperado. O comando abaixo irá rodar todos os serviços necessários, rodar os testes e em seguida derrubar todos os serviços.

npm test

Caso queira manter os serviços e testes rodando enquanto desenvolve (e rodando novamente a cada alteração salva), use o comando abaixo:

npm run test:watch:services

Os logs do Serviço Web e Jest (dos testes) irão se misturar, então caso queira rodar eles de forma separada, abra dois terminais separados e rode o seguinte:

# Terminal 1
npm run dev

# Terminal 2
npm run test:watch

Caso não queira dar watch em todos os testes e queira isolar arquivos específicos de teste, você pode utilizar uma expressão regular (regex) para dar match no que quiser. Não é necessário digitar o caminho inteiro para o arquivo, veja alguns exemplos abaixo:

# Rodar todos os testes de "users" da api "v1"
npm run test:watch -- v1/users/

# Rodar apenas o arquivo tests/integration/api/v1/_use-cases/registration-flow.test.js
npm run test:watch -- registration-flow

# Rodar apenas o arquivo tests/integration/api/v1/contents/[username]/patch.test.js
npm run test:watch -- username./patch

# Rodar apenas o arquivo tests/integration/api/v1/contents/[username]/[slug]/get.test.js
npm run test:watch -- contents/.username./.slug./get

Observações:

  • A forma como é tratado o caminho dos arquivos pode mudar dependendo do seu sistema operacional.
  • A forma como o seu terminal interpreta caracteres especiais como / ou [ pode mudar, mas você poderá usar regex para evitar usar esses caracteres, como por exemplo utilizar o . que representa o match com qualquer caractere. Isto foi utilizado nos exemplos acima para evitar os caracteres [ e ] dos arquivos.

Formas de contribuir

Você pode contribuir com o projeto de várias formas diferentes:

Histórico de Desenvolvimento

Início do projeto

No início do projeto foram feitas 40 publicações no Wiki do repositório. Lá você encontrará informações desde como a ideia do TabNews surgiu e como foram as contribuições no início do projeto, até as definições do layout e outras tomadas de decisão.

Milestones

Milestones são marcos históricos do projeto para ajudar a guiar o desenvolvimento numa direção específica. Pelo GitHub é possível ver a Milestone em andamento e as Milestones encerradas.

Contribuidores

Lista de contribuidores

About

Conteúdos para quem trabalha com Programação e Tecnologia.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 89.4%
  • JavaScript 10.5%
  • Other 0.1%