https://github.com/igorcarmona-git/api-igor
Trabalho academico, uma API Rest construída com express, sequelize-cli, postgree, cors, dotenv, jsonwebtoken, bcrypt e multer (upload de arquivos)
https://github.com/igorcarmona-git/api-igor
api-rest app-backend backend criptography javascript json-api
Last synced: 2 months ago
JSON representation
Trabalho academico, uma API Rest construída com express, sequelize-cli, postgree, cors, dotenv, jsonwebtoken, bcrypt e multer (upload de arquivos)
- Host: GitHub
- URL: https://github.com/igorcarmona-git/api-igor
- Owner: igorcarmona-git
- Created: 2024-06-05T01:19:15.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-21T19:27:40.000Z (11 months ago)
- Last Synced: 2025-01-15T05:37:39.736Z (4 months ago)
- Topics: api-rest, app-backend, backend, criptography, javascript, json-api
- Language: JavaScript
- Homepage:
- Size: 9.06 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API REST para CRUD de Pessoas
Este é um trabalho acadêmico desenvolvido para a disciplina de Desenvolvimento Web. A API foi construída utilizando Node.js, Nodemon, Express, Sequelize ORM, Postgree (como banco de dados), dotenv, cors, jsonwebtoken, bcrypt, multer.
## Funcionalidades
- **CRUD**: A API oferece operações CRUD (Criar, Ler, Atualizar, Deletar) com validações baseadas nos dados fornecidos nas requisições HTTP.
- **Autenticação criptografada**: Foi utilizado "bcrypt" para criptografar dados além de utilizar bearer tokens para rotas autenticadas.
- **Consistência de Dados**: Utilizamos o postgree via cloud no Render para garantir a consistência e persistência dos dados.### Endpoints
**Users**:
- `GET /users`: Retorna a lista de todos os usuários armazenadas no banco de dados. *(Autenticada)*
- `GET /users/:username`: Retorna os dados do usuário fornecido. *(Autenticada)*
- `GET /users/allactive`: Retorna todos os usuários ativos. *(Autenticada)*
- `GET /users/allinactive`: Retorna todos os usuários inativos. *(Autenticada)*
- `POST /users`: Permite criar uma nova entrada no banco de dados com os dados fornecidos para um usuário.
- `PUT /users/:username`: Permite editar os detalhes de uma pessoa com base no CPF fornecido. *(Autenticada)*
- `DELETE /users/:username`: Permite excluir uma entrada do banco de dados com base no usuário fornecido. *(Autenticada)***Profile**:
- `GET /profiles/:username`: Retorna os dados do perfil do usuário fornecido. *(Autenticada)*
- `POST /profiles/:username`: Permite criar os dados do perfil do usuário fornecido. *(Autenticada)*
- `PUT /profiles/:username`: Permite editar os dados do perfil do usuário fornecido. *(Autenticada)***Login**:
- `POST /login`: Rota para realização do login na aplicação, te retorna um BEARER Token.**Reports**:
- `GET /reports/findAllDataByUser/:username`: Permite visualizar todos os dados de perfil e de usuário, de um usuário fornecido. *(Autenticada)*#### Corpo da Requisição (HTTP BODY)
**Users**
- Deve-se fazer o login e passar o token em authorization.
```json
{
"username": "igorcarmona",
"email": "[email protected]",
"password": "Senha-Qualquer@123",
"cpf": "19692736075",
"status": "active"
}
```**Login**
```json
{
"username": "igorcarmona",
"password": "Senha-Qualquer@123",
}
```**Profile**
```json
{
"bio": "Uma pessoa bastante divertida!",
"birthdate": "2000-05-25",
"city": "Cianorte",
"state": "pr",
}
```## Pré-requisitos
Certifique-se de ter o ambiente de desenvolvimento Node.js configurado em sua máquina. Você pode seguir a [documentação oficial do Node.js](https://nodejs.org/en) para configurar o ambiente.
## Instalação
Para instalar e configurar o projeto localmente, siga estas etapas:
1. Clone o repositório:
```bash
git clone https://github.com/igorcarmona-git/trabalho-api.git
cd trabalho-api
```2. Instale as dependências:
```bash
npm install
```
ou
```bash
yarn install
```## Uso
1. Inicie a API na raiz da pasta do projeto.```bash
npm start
```## Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests para melhorar o projeto.**Para mais informações, entrar em contato via redes sociais.**