Code Monkey home page Code Monkey logo

note-taking's Introduction

Note-Taking

Indice

  1. Informações
    1. Sobre este projeto
    2. Funcionalidades
    3. Tecnologias
    4. Site
  2. Como rodar o Servidor
    1. Requisitos
    2. Download das dependências
    3. Como iniciar o Servidor (Back-end)
    4. Como iniciar o Servidor (Front-end)
    5. Como fazer o build dos arquivos do Front-end
    6. Como iniciar o Servidor no modo "Produção"
  3. Como rodar os Testes
    1. Teste de Rotas
  4. Informações adicionais
    1. Navegadores testados

Informações

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/

Como rodar o Servidor

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ório MongoDB/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 key DATABASE_CONNECTION_STRING.

Download das dependências:

  • Baixe o repositório da branch dev.
  • No repositório local use o comando npm installpara 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 comando npm run client-fix e espere ser realizada a correção. Exemplo da mensagem de erro: enter image description here

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 comando npm run client-fix e espere ser realizada a correção. Exemplo da mensagem de erro: enter image description here

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).

Como rodar os Testes

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.
  • 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" }).
  • Observações:

    • Mais informações nos comentários deste mesmo arquivo (/test/routes-test.config.js).
    • Se definir createRandomAccountcomo true então a conta pré-definida não será utilizada.
    • Se utilizar a createRandomAccount como true então será mostrado na hora do teste as informações da conta que foi criada.
    • Se utilizar a testCreatingNewAccount como false e createRandomAccount como true então sempre dará erro no teste porque tentará autenticar uma conta que não existe.
  • Exemplo: (usando o createRandomAccount: true) Imagem de um teste realizado

Informações adicionais

Navegadores testados:

  • Chrome (Versão 84.0)
  • Firefox (Versão 78.0)
  • Microsoft Edge (Versão 84.0)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.