About | Deploy | How It Works | Technologies | Author | License
Este é o repositório do back-end da aplicação Rocketnotes (link do front-end), 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 para quem tiver interesse.
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.
Antes de baixar o projeto você vai precisar ter instalado na sua máquina as seguintes ferramentas:
Além disto é bom ter um editor para trabalhar com o código como VSCode
# 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
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
.
As seguintes ferramentas foram usadas na construção do projeto:
Server (NodeJS)
- Express
- Nodemon
- Express-Async-Errors
- Knex
- PostgreSQL
- SQLite
- CORS
- Dotenv
- bcryptjs
- jsonwebtoken
- Multer
- PM2
- Jest
Para mais detalhes das dependências gerais da aplicação veja o arquivo package.json
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais informações
Feito com 💜 por Pablo Alan 👋🏽 Entre em contato!