Skip to content

BrunoCarvalhoFeitosa/quality-technical-case

Repository files navigation

Quality Technical Case

Projeto feito com Next.js, Typescript, Cypress, Next-Auth, Prisma, MongoDB e Styled Components.

🎉 Vídeos do projeto em funcionamento

Home page

QualitIA.-.GitHub.Homepage.mp4

Login com GitHub

QualitIA.-.GitHub.Login.mp4

Login com Google

QualitIA.-.Google.Login.mp4

Validação de Sessão

QualitIA.-.Validating.Session.mp4

🚀 Começando

Siga as instruções abaixo para clonar este projeto.

  1. Clone o repositório
    git clone https://github.com/BrunoCarvalhoFeitosa/quality-technical-case.git
  2. Instale os pacotes do NPM
    npm install ou yarn
  3. Crie um banco de dados MongoDB e defina a variável DATABASE_URL em um arquivo .env na raiz do projeto, isso fará com que seu projeto conecte-se com o banco de dados e cadastre os novos usuários:
    https://www.mongodb.com
  4. Crie um projeto no Google Developer Console e defina as variáveis GOOGLE_CLIENT_ID e GOOGLE_CLIENT_SECRET em um arquivo .env na raiz do projeto, isso fará com que o login com o Google funcione:
    https://console.cloud.google.com
  5. Crie um projeto no Google Developer Console e defina a variável GITHUB_CLIENT_ID e GITHUB_CLIENT_SECRET em um arquivo .env na raiz do projeto, isso fará com que o login com o GitHub funcione:
    https://github.com
  6. Crie uma conta no EmailJS e defina a variável NEXT_PUBLIC_EMAILJS_SERVICE_ID, NEXT_PUBLIC_EMAILJS_TEMPLATE_ID, NEXT_PUBLIC_EMAILJS_API_KEY em um arquivo .env na raiz do projeto, isso fará com que o formulário de contato envie os dados para o seu Gmail:
    https://www.emailjs.com
  7. Crie a variável NEXTAUTH_SECRET e defina o mesmo valor para ela:
    NEXTAUTH_SECRET
  8. Inicie o projeto
    npm run dev ou yarn dev

📋 Pré-requisitos

Inicialmente será necessário ter o Node.js instalado na sua máquina, para isso copie e cole o link abaixo para fazer o download e instalação.

https://nodejs.org/en 

⚙️ Executando os testes

Foram criados testes automatizados com Cypress, os testes envolvem as funcionalidades de cadastro de usuário, login de usuário, validação da sessão do usuário para as páginas de pessoas e imagens geradas pela api JSON Placeholder e consequentemente se os dados foram retornados pela api e estão sendo visíveis nas respectivas páginas.

Executar na web:

npm run cypress:web ou yarn cypress:web

Executar no terminal:

npm run cypress:headless ou yarn cypress:headless

🛠️ Construído com

Este projeto foi feito com:

  • Next.js - Biblioteca baseada no React.js.
  • Typescript - Linguagem de programação tipada.
  • Cypress - Framework para testes.
  • Next-Auth - Solução Next.js para autenticação de usuários.
  • Prisma - ORM que integra aplicações Javascript e Typescript com banco de dados.
  • MongoDB - Banco de dados não relacional.
  • Styled Components - Solução para estilização de componentes React.js.

✒️ Autores

Desenvolvido por:

Bruno Carvalho Feitosa - GitHub - LinkedIn.

📄 Licença

Este projeto não possui nenhuma licença.

Releases

No releases published

Packages

No packages published