Projeto feito com Next.js, Typescript, Cypress, Next-Auth, Prisma, MongoDB e Styled Components.
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
Siga as instruções abaixo para clonar este projeto.
- Clone o repositório
git clone https://github.com/BrunoCarvalhoFeitosa/quality-technical-case.git
- Instale os pacotes do NPM
npm install ou yarn
- 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
- 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
- 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
- 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
- Crie a variável NEXTAUTH_SECRET e defina o mesmo valor para ela:
NEXTAUTH_SECRET
- Inicie o projeto
npm run dev ou yarn dev
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
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
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.
Desenvolvido por:
Bruno Carvalho Feitosa - GitHub - LinkedIn.
Este projeto não possui nenhuma licença.