Skip to content

API Rest com operações CRUD Desenvolvida no Curso de JavaScript do Otávio Miranda na Udemy. Com intuito de estudar a criação de APIs com Node.js e Express.

License

Notifications You must be signed in to change notification settings

leefell/apiRest-crud-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

API REST CRUD de Alunos

Descrição

Esta API foi desenvolvida em JavaScript utilizando o framework Express para realizar operações de CRUD (Criar, Ler, Atualizar e Deletar) de alunos. O projeto inclui funcionalidades de upload de fotos dos alunos e autenticação de usuários via JWT. Em suma o intuito desse projeto é estudar como funciona o Express.

Tecnologias Utilizadas

  • Node.js: Ambiente de execução.
  • Express: Framework para construção da API.
  • Sequelize: ORM para interagir com o banco de dados MySQL.
  • MySQL: Banco de dados utilizado.
  • JWT (JSON Web Token): Autenticação de usuários.
  • Multer: Gerenciamento de uploads de arquivos.
  • Helmet: Segurança das requisições HTTP.
  • Bcrypt: Hash de senhas.

Instalação e Configuração

Pré-requisitos

  • Node.js
  • Banco de Dados MySQL

Passos para Instalação

Clone o repositório:

     git clone https://github.com/leefell/apiRest-crud-js.git

Instale as dependências:

    npm i

Configure as variáveis de ambiente no arquivo .env:

DATABASE=<nome_do_banco>

DATABASE_HOST=<host_do_banco>
DATABASE_PORT=<porta_do_banco>
DATABASE_USERNAME=<usuario_do_banco>
DATABASE_PASSWORD=<senha_do_banco>

TOKEN_SECRET=<chave_secreta_jwt>
TOKEN_EXPIRATION=<tempo_expiracao_token>

APP_URL=<url_da_api>
APP_LOCAL_URL=<url_local_da_api>
APP_PORT=<porta_da_api>

Execute as migrations para configurar o banco de dados:

npx sequelize-cli db:migrate

Inicie o servidor em ambiente de desenvolvimento:

npm run dev

Endpoints

Autenticação

POST /token: Gera um token de autenticação (login).

Alunos

  • GET /alunos: Lista todos os alunos.
  • POST /alunos: Cria um novo aluno.
  • GET /alunos/:id: Exibe os detalhes de um aluno específico.
  • PUT /alunos/:id: Atualiza as informações de um aluno.
  • DELETE /alunos/:id: Remove um aluno.

Upload de Fotos

  • POST /fotos: Faz o upload de uma foto para um aluno.

Usuários

  • POST /users: Cria um novo usuário (para autenticação).
  • PUT /users: Atualiza as informações de um usuário.
  • DELETE /users: Remove um usuário.

Estrutura do Projeto

src
│
├── config
│ ├── appConfig.js
│ ├── database.js
│ └── multer.js
│
├── controllers
│ ├── alunoController.js
│ ├── fotoController.js
│ ├── homeController.js
│ ├── tokenController.js
│ └── userController.js
│
├── database
│ ├── migrations
│ ├── seeds
│ └── index.js
│
├── middlewares
│ └── loginRequired.js
│
├── models
│ ├── aluno.js
│ ├── foto.js
│ └── user.js
│
├── routes
│ ├── aluno.js
│ ├── foto.js
│ ├── home.js
│ ├── token.js
│ └── user.js
│
├── app.js
└── server.js

Como Contribuir

  1. Faça um fork do projeto.

  2. Crie uma branch com a sua feature:

    git checkout -b minha-feature-daora
  3. Faça commit das suas alterações:

    git commit -m 'Minha nova feature daora'
  4. Faça o push para a sua branch:

    git push origin minha-feature-daora
  5. Abra um Pull Request.

About

API Rest com operações CRUD Desenvolvida no Curso de JavaScript do Otávio Miranda na Udemy. Com intuito de estudar a criação de APIs com Node.js e Express.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published