Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kenmarcos/users-crud

šŸ‘„ CRUD bĆ”sico de usuĆ”rios com login (autenticaĆ§Ć£o JWT)
https://github.com/kenmarcos/users-crud

bcrypt docker expressjs jsonwebtoken nodejs postgresql typeorm typescript yup

Last synced: about 1 month ago
JSON representation

šŸ‘„ CRUD bĆ”sico de usuĆ”rios com login (autenticaĆ§Ć£o JWT)

Awesome Lists containing this project

README

        



šŸ‘„ Users Crud šŸ‘„



Sobre o Projeto ā€¢
Endpoints ā€¢
InstalaĆ§Ć£o ā€¢
UtilizaĆ§Ć£o ā€¢
Tecnologias ā€¢
Autor


## šŸ–„ļø Sobre o Projeto

> Projeto desenvolvido como parte das atividades do curso da Kenzie Academy Brasil.

Esse projeto consiste em uma aplicaĆ§Ć£o back-end com um CRUD bĆ”sico de usuĆ”rios.

O objetivo do desenvolvimento desse projeto era praticar e aprimorar as habilidades em Node.js, Express.js e TypeORM.

Esse serviƧo possui uma API REST integrada a um banco de dados PostegreSQL.

AtravĆ©s dessa aplicaĆ§Ć£o, um usuĆ”rio pode se cadastrar, fazer login, atualizar seus dados, listar todos os usĆ”rios cadastrados e remover um usuĆ”rio.

## šŸ’” Endpoints

| MĆ©todo | Endpoint | Responsabilidade |
| ------ | -------------- | ------------------------------------------------------------------------------------------------------- |
| POST | /users | Cria um usuƔrio |
| POST | /login | Gera um token JWT recebendo email e password no corpo da requisiĆ§Ć£o como JSON. |
| GET | /users | Lista todos os usuƔrios |
| GET | /users/profile | Retorna os dados do usuƔrio logado (usuƔrio a qual pertence o token que serƔ necessƔrio neste endpoint) |
| PATCH | /users/\ | Atualiza os dados de um usuƔrio |
| DELETE | /users/\ | Deleta usuƔrios do banco |

## āš™ļø InstalaĆ§Ć£o

> Este projeto requer que o [Git](https://git-scm.com/), o [Node.js](https://nodejs.org/en/) e o [Docker](https://www.docker.com/) estejam instalados em sua mƔquina.

- FaƧa o fork desse repositĆ³rio.

- Abra o terminal e clone o repositĆ³rio:

```Bash
$ git clone [email protected]:/users-crud.git
```

- Entre no diretĆ³rio do projeto:

```Bash
$ cd users-crud
```

- Instale as dependĆŖncias:

```Bash
$ yarn install
```

- Adicione o arquivo `.env` na raiz do projeto e configure suas variƔveis de ambiente seguindo o modelo do arquivo `.env.example`):

```dotenv
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
POSTGRES_DB=your_database
JWT_SECRET=your_secret_key
```

- Inicie o contĆŖiner docker referente ao banco de dados PostgreSQL de acordo com as configuraƧƵes do arquivo `docker-compose.yml`:

```Bash
$ docker-compose up
```

- Execute as _migrations_ para criar as tabelas no banco de dados:

```Bash
$ yarn typeorm migration:run
```

- Execute a aplicaĆ§Ć£o:

```Bash
$ yarn dev
```

Pronto! A aplicaĆ§Ć£o, agora, estarĆ” sendo executada atravĆ©s na rota https://localhost:3000/.

## šŸš€ UtilizaĆ§Ć£o

> Para utilizar a aplicaĆ§Ć£o, Ć© necessĆ”rio o uso de uma API Client, como [Postman](https://www.postman.com/) ou [Insomnia](https://insomnia.rest/download).

Verifique a [documentaĆ§Ć£o](https://kenmarcos.github.io/users-crud/) da API.

## šŸ› ļø Tecnologias

Para o desenvolvimento desse projeto, as seguintes ferramentas foram utilizadas:

- **[Node.js](https://nodejs.org/)**
- **[Express.js](https://expressjs.com/)**
- **[TypeScript](https://www.typescriptlang.org/)**
- **[TypeORM](https://typeorm.io/)**
- **[Docker](https://www.docker.com/)**
- **[Bcrypt](https://www.npmjs.com/package/bcrypt)**
- **[JSON Web Token](https://www.npmjs.com/package/jsonwebtoken)**
- **[Yup](https://www.npmjs.com/package/yup)**

## šŸ‘Øā€šŸ’» Autor

author-profile-picture

Marcos Kenji Kuribayashi

[![Linkedin Badge](https://img.shields.io/badge/-LinkedIn-blue?style=flat&logo=Linkedin&logoColor=white)](https://www.linkedin.com/in/marcos-kuribayashi/) [![Gmail Badge](https://img.shields.io/badge/[email protected]?style=flat&logo=Gmail&logoColor=white)](mailto:[email protected])

---

Desenvolvido por Marcos Kenji Kuribayashi šŸ˜‰