- Informações
- Sobre este projeto
- Funcionalidades
- Tecnologias
- Site
- Como rodar o Servidor
- Requisitos
- Download das dependências
- Como iniciar o Servidor (Back-end)
- Como iniciar o Servidor (Front-end)
- Como fazer o build dos arquivos do Front-end
- Como iniciar o Servidor no modo "Produção"
- Como rodar os Testes
- Teste de Rotas
- Informações adicionais
- Navegadores testados
Sobre este projeto:
- É uma Web Application para armazenar as suas anotações online.
Funcionalidades:
- CRUD: É possível criar, salvar, editar e deletar cada uma das suas anotações.
- Login: Criação de conta e login com autenticação JWT.
- Informações das anotações: Cada anotação contém as seguintes informações: Título, Tag, Favorito, Texto e Data e Hora da ultima atualização.
- Informações das contas: Cada conta contém as seguintes informações: Nome de usuário, Email e Senha.
Tecnologias:
- Front-end: VueJs.
- Back-end: NodeJs + Express.
- API Rest: Express + Axios.
- Outras API/Lib: Babel + vue2-editor + express-validator + Bcryptjs + jsonwebtoken.
- Banco de Dados: MongoDB + Mongoose.
- Testes: Mocha + Chai.
- Pré-processador: SCSS.
- Linter: ESlint-airbnb (Usado no Front-end).
- Status: Completo. Site: https://app-note-taking.herokuapp.com/
Requisitos:
-
Ter instalado o Node.Js e o NPM Download.
-
Ter acesso a um banco de dados MongoDB
Rodando o Banco de Dados no
http://localhost
É necessário ter instalado o MongoDB (Download) e iniciar o
mongod.exe
que é instalado no diretórioMongoDB/Server/4.4(versão do mongo)/bin
. -
2ª Opção:
Rodando o Banco de Dados no MongoDB - Atlas
É necessário ter uma conta no MongoDb Cloud e usar a Connection String em um arquivo
.env
usando com a keyDATABASE_CONNECTION_STRING
.
Download das dependências:
- Baixe o repositório da branch
dev
. - No repositório local use o comando
npm install
para fazer o download das dependências do Back-end. - No repositório local use o comando
npm run client-install
para fazer o download das dependências do Front-end.
Como iniciar o Servidor (Back-end)
- Para iniciar o servidor no modo "desenvolvedor" (usando o Nodemon) digite no terminal:
npm run server-dev
.
Como iniciar o Servidor (Front-end)
- Para iniciar o servidor no modo "desenvolvedor" digite no terminal:
npm run client-dev
. - OBS: Caso o Eslint mostre mensagens de erro em que pode ser consertado com o
--fix
então basta usar o comandonpm run client-fix
e espere ser realizada a correção. Exemplo da mensagem de erro:
Como fazer o build dos arquivos do Front-end
- Para realizar o build dos arquivos do Front-end digite no terminal:
npm run client-build
. - OBS: Caso o Eslint mostre mensagens de erro em que pode ser consertado com o
--fix
então basta usar o comandonpm run client-fix
e espere ser realizada a correção. Exemplo da mensagem de erro:
Como iniciar o Servidor no modo "Produção"
- Para iniciar o servidor no modo "produção" digite o comando:
npm start
. OBS: Para esta etapa é necessário já ter feito 2 coisas:- Ter feito o build do Front-end com o comando:
npm run client-build
. - Criado um arquivo na pasta raiz com o nome
.env
e colocar neste arquivo este código:RUN_MODE=production
(isso é para que o Back-end execute os arquivos de Build).
- Ter feito o build do Front-end com o comando:
Teste de rotas:
-
Descrição: Realiza testes no retorno de todas as requisições do Back-end
- Arquivo de testes:
/test/routes-test.js
: - Criação de conta (é opcional, mas vem ativado por padrão).
- Autenticação de login.
- Listagem de anotações do usuário autenticado.
- Criar uma nova anotação.
- Editar a anotação criada.
- Deletar esta mesma anotação anotação.
- Arquivo de testes:
-
Requisitos:
- 1º - Ter instalado as dependências necessárias para rodar o servidor (inclusive já ter o acesso ao Banco de Dados).
- 2º - Digitar o comando
npm run test
.
-
Configurações:
- No arquivo
/test/routes-test.config.js
você pode definir algumas configurações para os testes: - Porta de acesso (Padrão:
port: 3000
). - Endereço do servidor (Padrão:
path: 'http://localhost'
). - Incluir no teste a criação de uma nova conta (Padrão:
testCreatingNewAccount: true
). - Utilizar no teste uma conta randômica (Padrão:
createRandomAccount: true
). - Utilizar no teste uma conta pré-definida (Padrão:
account: { user: "test", email: "[email protected]", password: "12345" })
.
- No arquivo
-
Observações:
- Mais informações nos comentários deste mesmo arquivo (
/test/routes-test.config.js
). - Se definir
createRandomAccount
comotrue
então a conta pré-definida não será utilizada. - Se utilizar a
createRandomAccount
comotrue
então será mostrado na hora do teste as informações da conta que foi criada. - Se utilizar a
testCreatingNewAccount
comofalse
ecreateRandomAccount
comotrue
então sempre dará erro no teste porque tentará autenticar uma conta que não existe.
- Mais informações nos comentários deste mesmo arquivo (
Navegadores testados:
- Chrome (Versão 84.0)
- Firefox (Versão 78.0)
- Microsoft Edge (Versão 84.0)