Skip to content

pedro18x/API-Refund

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 API Refund

API para solicitação, aprovação e gestão de reembolsos corporativos.

Desenvolvido por Pedro Ernesto durante o curso Fullstack da Rocketseat.


📖 Sobre o Projeto

A API Refund é uma solução RESTful criada para facilitar o processo de reembolso em empresas, permitindo que funcionários solicitem reembolsos, gestores aprovem ou rejeitem pedidos e todos acompanhem o status das solicitações. O sistema conta com autenticação JWT, upload de comprovantes, controle de acesso por perfil e validação robusta de dados.


🛠️ Stack Utilizada

  • Node.js — Ambiente de execução JavaScript no backend.
  • Express.js — Framework web para criação das rotas e middlewares.
  • Typescript — Tipagem estática para maior segurança e produtividade.
  • Prisma ORM — Mapeamento objeto-relacional para acesso ao banco de dados.
  • SQLite — Banco de dados leve e prático para desenvolvimento.
  • Zod — Validação de dados das requisições.
  • JWT (JSON Web Token) — Autenticação e autorização segura.
  • Multer — Upload de arquivos (comprovantes).
  • Bcrypt — Hash seguro de senhas.

⚙️ Instalação e Uso

  1. Clone o repositório:

    git clone https://github.com/Fel1324/ApiRefund.git
    cd ApiRefund
  2. Instale as dependências:

    npm install
  3. Configure o banco de dados e rode as migrations:

    npx prisma migrate dev
  4. Inicie o servidor em modo desenvolvimento:

    npm run dev

🗂️ Estrutura do Projeto

src/
 ├── app.ts
 ├── server.ts
 ├── configs/
 ├── controllers/
 ├── database/
 ├── middlewares/
 ├── providers/
 ├── routes/
 ├── types/
 └── utils/
prisma/
 ├── schema.prisma
 └── migrations/
tmp/
 └── uploads/

🔐 Autenticação & Perfis

  • Usuários: Funcionários (employee) e Gestores (manager)
  • Autenticação: JWT via header Authorization: Bearer <token>
  • Controle de acesso: Middlewares garantem que apenas usuários autorizados acessem cada rota.

📑 Principais Endpoints

  • POST /users — Cadastro de usuário
  • POST /sessions — Login (retorna token JWT)
  • POST /refunds — Criar solicitação de reembolso (employee)
  • GET /refunds — Listar solicitações (manager)
  • GET /refunds/:id — Detalhar solicitação (employee/manager)
  • POST /uploads — Upload de comprovante (employee)
  • GET /uploads/:filename — Acessar comprovante enviado

📋 Exemplos de Uso

Cadastro de Usuário

POST /users
{
  "name": "João Silva",
  "email": "joao@email.com",
  "password": "minhasenha123",
  "role": "employee"
}

Login

POST /sessions
{
  "email": "joao@email.com",
  "password": "minhasenha123"
}

Criar Solicitação de Reembolso

POST /refunds
Authorization: Bearer <token>
{
  "name": "Almoço reunião",
  "category": "food",
  "amount": 75.50,
  "filename": "<nome-do-arquivo-do-upload>"
}

About

API para gestão de reembolsos corporativos, desenvolvid com Node.js, Express.js, TypeScript, Prisma, Zod e Multer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors