Giter Club home page Giter Club logo

api-rest--alunos's Introduction

Sobre

API feita em Nodejs para gestão de dados de alunos, usando MariaDB para persistência dos dados.

O usuário precisa criar uma conta para ter acesso aos dados dos alunos, onde poderá fazer um CRUD dos mesmos.

Cada usuário terá acesso também aos seus dados pessoais e não dos outros usuários.

É usado JWT para autenticação e autorização de rotas e usuários. O usuário pode gerar o token com seu ID e Email.

As senhas dos usuários são encriptadas.


Dados

Modelo Estrutura
Usuário Nome, Email, Senha
Aluno Nome, Sobrenome, Email, Idade, Peso, Altura, Foto
Foto Nome original, Novo nome, Url


Campo Validação
Nome e Sobrenome Deve ter entre 3 e 50 caracteres
Email Deve ser válido e único na Base de Dados
Senha Deve ter entre 3 e 50 caracteres
Idade Deve ser do tipo inteiro
Peso Deve ser do tipo real
Altura Deve ser do tipo real
Url -
Nomes de arquivos -

Instalação

  • Abra o terminal do projecto
  • npm install para instalar os pacotes necessários
  • npm start para rodar o projecto na localhost:3001
  • ctrl + c para parar o servidor
  • npm run build para atualizar a dist

Migrations

  • npx sequelize migration:create --name=nome da migration
  • npx sequelize db:migrate

Execução

  • Crie uma conta de usuário localhost:3001/users/
  • Gere um Token para autenticação das secções localhost:3001/tokens/

.env

Não esqueça de criar um arquivo .env com as configurações necessárias:

  • DATABASE= nome da DB
  • DATABASE_HOST= link da DB
  • DATABASE_PORT= porta a rodar na DB
  • DATABASE_USERNAME= nome de usuário na DB
  • DATABASE_PASSWORD= senha de acesso a DB
  • TOKEN_SECRET= secret dos tokens que serão gerados
  • TOKEN_EXPIRATION= tempo de validade do token
  • APP_URL= url da API exemplo http://localhost:3001
  • APP_PORT= porta exemplo 3001

Exemplo

[
    {
        "id": 1,
        "nome": "Tatiana",
        "sobrenome": "Langa",
        "email": "[email protected]",
        "idade": 20,
        "peso": 76.9,
        "altura": 1.5,
        "Fotos": []
    },
    {
        "id": 2,
        "nome": "Marcos",
        "sobrenome": "Chissano",
        "email": "[email protected]",
        "idade": 18,
        "peso": 69.3,
        "altura": 1.8,
        "Fotos": []
    },
    {
        "id": 3,
        "nome": "Carlos",
        "sobrenome": "Zucula",
        "email": "[email protected]",
        "idade": 18,
        "peso": 60,
        "altura": 1.2,
        "Fotos": [
            {
                "url": "http://localhost:3001/images/1675062594842_1811.jpg",
                "filename": "1675062594842_1811.jpg"
            },
            {
                "url": "http://localhost:3001/images/1675062418734_1811.jpg",
                "filename": "1675062418734_1811.jpg"
            }
        ]
    }
]

Feito com

NodeJS Express.js MariaDB NPM JWT


Autor

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.