EdileneLopes / Api-alunos

Api em nodejs para cadastro de alunos

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub language count Repository size GitHub last commit License Stargazers Gamados por Java

🚧 Persistencia Poliglota 🚀 🚧

Um dos motivos de usarmos esse tipo de persistência é que tivemos o desafio de integrar back-end com back-end (Java e Node) uma API chamando a outra, onde deixamos nossos métodos genéricos o suficiente para chamar às duas APIs. Uma persistência Utilizando Node.js e MongoDB e outra com Java e MySQL para persistir os dados recebidos pela API.

SobreDocumentaçãoFuncionalidadesComo executarTecnologiasContribuidoresLicença

💻 Sobre o Projeto

☕ Sistema de Gerenciamento - É uma API em Node.js que permite o Cadastro, Consulta, Inclusão e Exclusão de Alunos...

Projeto desenvolvido durante o Treinamento Java e Node oferecida pela Gama Academy em parceria com a Accenture.


👍 Aprendizados

Conceitos da linguagem JavaScript com Node.js, orientação a objetos, modulos, pacotes, funções: parametros, arrow functions, callbacks. JSON: Objeto JSON, desestruturação de Objetos. Promisses.

API de CRUD básica através de requisições HTTP diretas usando o Postman, mostrando domínio em RESTful APIs. Demonstrar a aplicação de uma persistência poliglota desse CRUD, utilizando tanto banco de dados relacionais como outros serviços (SOA).


📃 Documentação Completa


⚙️ Funcionalidades

  • Alunos podem se cadastrar na plataforma enviando:

    • Nome, Telefone, Matricula
  • Manipular na plataforma:

    • Acesso ao CRUD onde permite o gerenciamento
      • A Criação de Novos Alunos, Cursos, Disciplinas, Notas
      • Pesquisa e Leitura
      • Edição
      • Exclusão
  • Validações:

    • Utilizando JSON Schema
      • Validação de Estrutura e Documentos JSON
      • Definir atributos obrigatórios, tipagem, tamanho entre outros.
      • Documentação clara, legível por humanos e por máquina
    • Utilizando Ajv e Ajv-i18n
      • Ajv implementa a especificação do esquema JSON
      • Ajv-i18n Traz Mensagens de erro internacionalizadas para Ajv, disponibilizando acesso a diversos idiomas
    • Utilizando Hapi/Boom
      • HTTP o código correto e mais amigável no envio com um objeto estruturado e mensagem personalizada.
  • JSON Web Token / JWT:

    • Como uma forma de garantir a autenticação e autorização de rotas e usuários.

🚀 Como executar o projeto

Este projeto está dividido em duas partes:

  1. Backend Node (Api-alunos)
  2. Backend Java (Neste outro repositorio)

💡 O Backend deve estar sendo executado para funcionar.

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node (Versão 14 LTS ou Superior), NVM (Node Version Manager for Windows), MongoDB(Community Edition), NoSQLBooster. Além disto é bom ter um editor para trabalhar com o código como VSCode. E para testar e consumir os Endpoints use Postman

Para executar a persistencia poliglota você obrigatoriamente deve ter o repositorio de Java. Acesse Neste outro repositorio.

E siga as instruções e pre-requisitos da documentação.

🎲 Rodando o Backend (servidor)

# Clone este repositório
$ git clone https://github.com/EdileneLopes/Api-alunos.git

# Acesse a pasta do projeto no terminal de sua preferencia bash/cmd
$ cd Api-alunos

# Um passo antes da execução instale as dependencias
$ npm install

# Execute
$ npm start

# O servidor inciará na porta:3000 - Acesse: http://localhost:3000

Acesse a Documentação com Swagger UI

http://localhost:3000/doc

Autenticação

Lembrando que as URLs precisam de um Authorization: Bearer Token válido (emitido no mesmo dia, com a assinatura HS256 utilizando a chave chavesecreta e qualquer payload.

Antes de gerar o token você precisa acessar: http://localhost:3000/token

Com Metodo POST: Basic Auth e Passar (E-mail e senha) cadastrados no banco de dados em colletion usuarios

Trocando de persistência

Para configurar qual será o repositório utilizado para persistir os dados recebidos pela API, utilize o header X-Persistence na requisição, com um dos seguintes valores:

mongodb

mongodb é o padrão

Precisa de um servidor de MongoDB rodando em localhost na porta 27017. O banco padrão para as operações é "aluno".

rest

mysql

Tenta se conectar em uma API de REST rodando em localhost na porta 8080. A rota padrão para as operações é /alunos.


🛠 Tecnologias

As seguintes ferramentas foram usadas na construção do projeto:

Server (NodeJS)

Utilitários


👨‍💻 Contribuidores

💜 Um super parabens 👏 para essa equipe nota 10 que fez tudo sair do papel :)


Edilene Lopes

👪 📚

Elson Santos

☕ 🎵

Rubens Almeida

👨‍🚀 👽

💪 Como contribuir para o projeto

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit contando o que você fez: git commit -m "feature: My new feature"
  4. Envie as suas alterações: git push origin my-feature


📝 Licença

Este projeto esta sobe a licença MIT.

⬆ Voltar ao topo


About

Api em nodejs para cadastro de alunos

License:MIT License


Languages

Language:JavaScript 100.0%