https://github.com/pabloxt14/rocketnotes-api
Este é o repositório do back-end da aplicação Rocketnotes, sendo está uma aplicação web na qual os usuários podem se cadastrar e criar de forma organizada anotações sobre determinados assuntos.
https://github.com/pabloxt14/rocketnotes-api
jest multer nodejs pm2 postgresql react reactjs rocketseat sqlite typescript
Last synced: 4 months ago
JSON representation
Este é o repositório do back-end da aplicação Rocketnotes, sendo está uma aplicação web na qual os usuários podem se cadastrar e criar de forma organizada anotações sobre determinados assuntos.
- Host: GitHub
- URL: https://github.com/pabloxt14/rocketnotes-api
- Owner: PabloXT14
- License: mit
- Created: 2023-01-12T18:57:26.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-13T21:51:36.000Z (over 2 years ago)
- Last Synced: 2024-11-29T00:13:58.886Z (about 1 year ago)
- Topics: jest, multer, nodejs, pm2, postgresql, react, reactjs, rocketseat, sqlite, typescript
- Language: JavaScript
- Homepage:
- Size: 1.64 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Rocketnotes API


🚀 Aplicação Finalizada 🚀
About |
Deploy |
How It Works |
Technologies |
Author |
License
## 💻 About
Este é o repositório do back-end da aplicação Rocketnotes ([link do front-end](https://github.com/PabloXT14/Rocketnotes-Web)), sendo está uma aplicação web na qual os usuários podem se cadastrar e criar de forma organizada anotações sobre determinados assuntos, tendo disponível a adição de titulo, descrição, links e tags para cada nota, além de contar a edição de perfil do usuário, podendo alterar seu avatar, nome, email e senham, entre outras funcionalidades.
Vale ressaltar que este projeto faz parte da trilha/curso **Explorer** oferecida pela [Rocketseat](https://www.rocketseat.com.br/) para quem tiver interesse.
---
## 🔗 Deploy
O acesso ao deploy da API fica disponível através da seguinte URL base: https://rocketnotes-api-epnx.onrender.com
> Obs: a aplicação pode demorar um pouco para entrar na primeira execução depois de um tempo, devido ao back-end estar rodando através do plano gratuito na plataforma de hospedagem.
---
## 🚀 How it works
### Pré-requisitos
Antes de baixar o projeto você vai precisar ter instalado na sua máquina as seguintes ferramentas:
* [Git](https://git-scm.com)
* [NodeJS](https://nodejs.org/en/)
* [Yarn](https://yarnpkg.com/) ou [NPM](https://www.npmjs.com/)
Além disto é bom ter um editor para trabalhar com o código como [VSCode](https://code.visualstudio.com/)
### 🎲 Rodando o Backend (servidor)
```bash
# Clone este repositório
$ git clone git@github.com:pabloxt14/Rocketnotes-API.git
# Acesse a pasta do projeto no terminal/cmd
$ cd Rocketnotes-API
# Configure as variáveis de ambiente em um arquivo .env na raiz do projeto (use o arquivo .env.example como base)
# Instale as dependências
$ npm install
# Execute as migrations
$ npm run migrate:dev
# Execute a aplicação em modo de desenvolvimento
$ npm run dev
# O servidor inciará na porta:3333 - acesse http://localhost:3333
# Executar testes (caso queira)
$ npm test
```
### Rotas
| Método | Rota | Descrição | Parâmetros | Observação |
| --- | --- | --- | --- | --- |
| POST | /sessions | Retorna os dados de autenticação de um usuário existente | `email`, `password` | enviar parâmetros no `body` |
| GET | /users | Retorna um usuário específico | `token` | enviar `token` de autenticação no `header` |
| POST | /users | Cria um novo usuário | `name`, `email`, `password` | enviar parâmetros no `body` da requisição |
| PUT | /users | Atualiza um usuário específico | `token`, `name`, `email`, `password`, `newPassword`(opcional) | enviar `token` pelo `header` e o restante no `body` |
| PATCH | /users/avatar | Atualiza o avatar de um usuário específico | `token`, `avatar` | enviar `token` pelo `header` e o `avatar` no formato `multipart` |
| GET | /notes | Retorna todas as notas de um usuário | `token` | enviar `token` de autenticação no `header` |
| GET | /notes:id | Retorna uma nota específica | `id`, `token` | enviar `token` pelo `header` e `id` pela rota |
| POST | /notes | Cria uma nota | `title`, `description`, `tags`(array, optional), `links`(array, optional) | enviar `token` pelo `header` e o restante no `body` |
| DELETE | /notes/:id | Deleta uma nota específica | `id`, `token` | enviar `token` pelo `header` e `id` pela rota |
| GET | /tags | Retornas as tags criadas por um usuário | `token` | enviar `token` de autenticação no `header` |
| GET | /files/:filename | Retorna arquivos de avatar | `filename` | enviar `filename` pela rota |
> Obs: todos os parâmetros enviados e respondidos no corpo da requisição e resposta estão no formato `JSON`.
---
## 🛠 Technologies
As seguintes ferramentas foram usadas na construção do projeto:
#### **Server** ([NodeJS](https://nodejs.org/en/))
- **[Express](https://expressjs.com/pt-br/)**
- **[Nodemon](https://www.npmjs.com/package/nodemon)**
- **[Express-Async-Errors](https://www.npmjs.com/package/express-async-errors)**
- **[Knex](https://knexjs.org/)**
- **[PostgreSQL](https://node-postgres.com/)**
- **[SQLite](https://github.com/mapbox/node-sqlite3)**
- **[CORS](https://www.npmjs.com/package/cors)**
- **[Dotenv](https://www.npmjs.com/package/dotenv)**
- **[bcryptjs](https://www.npmjs.com/package/bcryptjs)**
- **[jsonwebtoken](https://www.npmjs.com/package/jsonwebtoken)**
- **[Multer](https://www.npmjs.com/package/multer)**
- **[PM2](https://pm2.keymetrics.io/)**
- **[Jest](https://jestjs.io/pt-BR/)**
> Para mais detalhes das dependências gerais da aplicação veja o arquivo [package.json](./package.json)
---
## ✍ Author

[](https://www.linkedin.com/in/pabloalan/)
[](mailto:pabloxt14@gmail.com)
---
## 📝 License
Este projeto está sob a licença MIT. Consulte o arquivo [LICENSE](./LICENSE) para mais informações
Feito com 💜 por Pablo Alan 👋🏽 [Entre em contato!](https://www.linkedin.com/in/pabloalan/)