O TabNews é um site focado na comunidade da área de tecnologia, destinado a debates e troca de conhecimentos por meio de publicações e comentários criados pelos próprios usuários.
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
Rodar o TabNews em sua máquina local é uma tarefa extremamente simples.
Você precisa ter duas principais dependências instaladas:
Com o repositório clonado e as dependências globais instaladas, você pode instalar as dependências locais do projeto:
npm install
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:
CTRL+C
, que é o padrão dos terminais para matar processos..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.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.
teste@teste.com
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"
):
"admin@admin.com"
+ "password"
"user@user.com"
+ "password"
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 modo watch
com o comando abaixo:
npm run test:watch:services
Os logs do Serviço Web e Vitest (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 executar (ou dar watch
) em todos os testes e queira isolar arquivos específicos de teste, você pode filtrar pelo caminho. Não é necessário digitar o caminho inteiro para o arquivo e você também pode fornecer mais de um caminho, veja alguns exemplos abaixo:
# Rodar todos os testes de "users" e "status" da api "v1"
npm run test -- v1/users/ v1/status/
# Rodar apenas o arquivo tests/integration/api/v1/_use-cases/registration-flow.test.js
npm run test -- registration-flow
# Rodar apenas o arquivo tests/integration/api/v1/contents/[username]/patch.test.js
npm run test:watch:services -- 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:
/
ou [
pode mudar.Você pode contribuir com o projeto de várias formas diferentes:
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 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.