Skip to content

MxguelS/Expense-Tracker-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expense Tracker API

API REST para el seguimiento de gastos personales. Los usuarios se registran, inician sesión con JWT y gestionan sus propios gastos con filtros opcionales por fecha.

Node.js Express PostgreSQL Prisma JWT Zod


Requisitos

  • Node.js v18+
  • PostgreSQL corriendo localmente

Instalación

git clone https://github.com/dsMxguel/expense-tracker-api.git
cd expense-tracker-api
npm install

Copia el archivo de variables de entorno y completa los valores:

cp .env.example .env
DATABASE_URL="postgresql://usuario:password@localhost:5432/expense_tracker"
JWT_SECRET="tu_secreto_aqui"
PORT=3000

Ejecuta la migración de base de datos:

npx prisma migrate dev

Inicia el servidor:

npm run dev

Endpoints

Autenticación

Método Ruta Descripción
POST /api/auth/register Crear una cuenta nueva
POST /api/auth/login Iniciar sesión y obtener un JWT

Gastos

Todas las rutas de gastos requieren el header Authorization: Bearer <token>.

Método Ruta Descripción
GET /api/expenses Listar tus gastos
POST /api/expenses Agregar un nuevo gasto
PUT /api/expenses/:id Actualizar un gasto existente
DELETE /api/expenses/:id Eliminar un gasto

Filtros para GET /api/expenses

Query param Valor Notas
filter last_week / last_month / last_3_months / custom Opcional
startDate Fecha ISO 8601 Requerido si filter=custom
endDate Fecha ISO 8601 Requerido si filter=custom

Ejemplos de uso

Registro

POST /api/auth/register
{
  "email": "[email protected]",
  "password": "123456"
}

Crear gasto

POST /api/expenses
Authorization: Bearer <token>

{
  "amount": 25.50,
  "category": "Comestibles",
  "description": "Compras del super",
  "date": "2026-06-16T12:00:00.000Z"
}

Categorías disponibles: Comestibles, Ocio, Electronica, Utilidades, Ropa, Salud, Otros


Formato de respuesta

{ "success": true, "data": { ... } }
{ "success": false, "error": "Mensaje descriptivo" }

Estructura del proyecto

src/
├── index.js
├── routes/
├── controllers/
├── services/
├── middleware/
└── validators/
prisma/
└── schema.prisma

Flujo de request: Ruta → Middleware (JWT) → Validador (Zod) → Controlador → Servicio → Prisma → PostgreSQL

Inspirado de : https://roadmap.sh/projects/expense-tracker-api

About

API RESTful para gestionar gastos personales con autenticación JWT

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors