https://github.com/jonathasfrontend/servertechfixsupabase
Sistema de cadastro e ordem de serviço (back end)
https://github.com/jonathasfrontend/servertechfixsupabase
api api-restful javascript js json postgresql sql supabase
Last synced: 2 days ago
JSON representation
Sistema de cadastro e ordem de serviço (back end)
- Host: GitHub
- URL: https://github.com/jonathasfrontend/servertechfixsupabase
- Owner: jonathasfrontend
- Created: 2024-09-03T12:16:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-07T14:39:05.000Z (about 1 month ago)
- Last Synced: 2026-03-07T20:51:07.226Z (about 1 month ago)
- Topics: api, api-restful, javascript, js, json, postgresql, sql, supabase
- Language: JavaScript
- Homepage: https://servertechfixsupabase.vercel.app
- Size: 133 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API Backend - Documentação
Este documento descreve o backend de uma aplicação de gerenciamento de ordens de serviço e cadastro de clientes, incluindo rotas, configurações e funcionalidades implementadas. Esta aplicação é construída usando Node.js com o framework Express e Supabase como banco de dados.
## Índice
- [Instalação](#instalação)
- [Configuração](#configuração)
- [Rotas](#rotas)
- [Produto - /produto/:id](#produto---produtoid)
- [Ordem específica do cliente - /cliente/:clienteId/ordem/:ordemId](#ordem-específica-do-cliente---clienteclienteidordemordemid)
- [Últimas ordens - /ultimas-ordens](#últimas-ordens---ultimas-ordens)
- [Categorias - /categoria](#categorias---categoria)
- [Status - /status](#status---status)
- [Administradores - /admins](#administradores---admins)
- [Pesquisa de cliente - /pesquisa/:search](#pesquisa-de-cliente---pesquisasearch)
- [Cadastro de cliente e ordem - /cliente-e-ordem](#cadastro-de-cliente-e-ordem---cliente-e-ordem)
- [Adicionar ordem a cliente - /cliente/:id/ordem](#adicionar-ordem-a-cliente---clienteidordem)
- [Atualizar ordem de serviço - /cliente/:clienteId/ordem/:ordemId](#atualizar-ordem-de-serviço---clienteclienteidordemordemid)
- [Registrar administrador - /register-admin](#registrar-administrador---register-admin)
- [Dependências](#dependências)
- [Funções Auxiliares](#funções-auxiliares)
## Instalação
1. Clone o repositório:
```bash
git clone
cd
```
2. Instale as dependências:
```bash
npm install
```
3. Crie um arquivo .env na raiz do projeto com as seguintes variáveis:
```plaintext
JWT_SECRET=your_secret_key
```
4.Inicie o servidor:
```bash
npm start
```
## Configuração
* JWT: Usado para autenticação de administradores com tokens expiram em uma hora.
* Supabase: Cliente de banco de dados configurado para conectar com tabelas específicas.
## Rotas
### Produto -```/produto/:id```
#### Retorna todas as ordens associadas a um cliente específico.
* Método: ```GET```
* Parâmetro: ```id``` - ID do cliente
* Resposta:
* 200 OK: Objeto JSON com cliente e ordens associadas.
* 404 Not Found: Cliente ou ordens não encontrados.
* 500 Internal Server Error: Erro de execução.
### Ordem específica do cliente - ```/cliente/:clienteId/ordem/:ordemId```
#### Busca uma ordem específica de um cliente.
* Método: ```GET```
* Parâmetros:
* ```clienteId```: ID do cliente
* ```ordemId```: ID da ordem
* Resposta:
* ```200 OK```: Objeto JSON com detalhes do cliente e ordem.
* ```404 Not Found```: Cliente ou ordem não encontrados.
* ```500 Internal Server Error```: Erro de execução.
### Últimas ordens - ```/ultimas-ordens```
#### Lista as últimas ordens, agrupadas por cliente.
* Método: ```GET```
* Resposta:
* ```200 OK```: Lista de clientes e suas ordens mais recentes.
* ```500 Internal Server Error```: Erro de execução.
### Categorias - ```/categoria```
#### Retorna todas as categorias de produtos.
* Método: ```GET```
* Resposta:
* ```200 OK```: Lista de categorias.
* ```500 Internal Server Error```: Erro de execução.
### Status - ```/status```
#### Retorna todos os status possíveis para ordens de serviço.
* Método: ```GET```
* Resposta:
* ```200 OK```: Lista de categorias.
* ```500 Internal Server Error```: Erro de execução.
### Administradores - ```/admins```
#### Retorna todos os administradores cadastrados.
* Método: ```GET```
* Resposta:
* ```200 OK```: Lista de categorias.
* ```500 Internal Server Error```: Erro de execução.
### Pesquisa de cliente - ```/pesquisa/:search```
#### Pesquisa clientes por CPF, nome ou telefone.
* Método: ```GET```
* Parâmetro: search - termo de pesquisa
* Resposta:
* ```200 OK```: Lista de categorias.
* ```404 Not Found```: Cliente não encontrado.
* ```500 Internal Server Error```: Erro de execução.
### Cadastro de cliente e ordem - ```/cliente-e-ordem```
#### Cadastra um cliente e uma ordem de serviço associada.
* Método: ```POST```
* Corpo da Requisição:
* ```nome```, ```telefone```, ```endereco```, ```cpf```, ```info_produto```, ```defeito```, ```solucao```, ```fk_categoria_id```, ```fk_status_id```, ```orcamento```
* Resposta:
* ```201 Created```: Objeto JSON com cliente e ordem criados.
* ```500 Internal Server Error```: Erro de execução.
### Adicionar ordem a cliente - ```/cliente/:id/ordem```
#### Adiciona uma nova ordem a um cliente existente.
* Método: ```POST```
* Parâmetros: ```id``` - ID do cliente
* Corpo da Requisição:
* ```info_produto```, ```defeito```, ```solucao```, ```fk_categoria_id```, ```fk_status_id```, ```orcamento```
* Resposta:
* ```201 Created```: Objeto JSON com cliente e ordem criados.
* ```404 Not Found```: Cliente não encontrado.
* ```500 Internal Server Error```: Erro de execução.
### Atualizar ordem de serviço - ```/cliente/:clienteId/ordem/:ordemId```
#### Atualiza uma ordem de serviço específica de um cliente.
* Método: ```PUT```
* Parâmetros:
* ```clienteId```: ID do cliente
* ```ordemId```: ID da ordem
* Corpo da Requisição:
* ```info_produto```, ```defeito```, ```solucao```, ```fk_status_id```, ```orcamento```
* Resposta:
* ```200 OK```: JSON com mensagem de sucesso e dados atualizados.
* ```404 Not Found```: Cliente ou ordem não encontrados.
* ```500 Internal Server Error```: Erro de execução.
### Registrar administrador - ```/register-admin```
#### Cadastra um novo administrador.
* Método: ```POST```
* Corpo da Requisição:
* ```nome```, ```email```, ```senha```
* Resposta:
* ```201 Created```: JSON com dados do administrador.
* ```400 Bad Request```: Email já em uso.
* ```500 Internal Server Error```: Erro de execução.
## Dependências
* Express: Servidor web.
* Moment: Manipulação de datas.
* CORS: Configuração de permissão de origens cruzadas.
* Bcrypt: Hash de senhas.
* JWT: Autenticação com tokens.
* UUID: Gerador de identificadores únicos.
* Supabase: Cliente de banco de dados.
## Funções Auxiliares
```js
generateToken(params)
```
Gera um token JWT com validade de 1 hora.
**Parâmetros**: ```params``` - Objeto com os dados do payload do token.
**Retorno**: Token JWT.
Esta documentação serve como guia para desenvolvedores integrarem e darem manutenção na API, bem como para clientes entenderem o funcionamento das rotas disponíveis.
>Esse arquivo de documentação deve cobrir todas as rotas e funcionalidades do seu backend, além de detalhes de configuração e dependências necessárias para rodar o projeto.