Planifica, reserva y controla tus viajes
Una plataforma completa para itinerarios, gastos, presupuestos y analíticas.
TravelPal es una aplicación web para gestionar todo el ciclo de un viaje: itinerarios, control de
gastos, presupuestos y analíticas. El backend es InsForge (Postgres + Auth + Storage) y el
hosting es Cloudflare Workers con @opennextjs/cloudflare.
- ✅ Gestión completa de viajes: crear, editar y organizar itinerarios
- 💸 Control de gastos por viaje con categorías y métricas
- 💼 Presupuestos y seguimiento financiero
- 📊 Dashboard analítico con visualizaciones interactivas
- 🔐 Autenticación con InsForge (server actions; refresh token httpOnly)
- 🧩 Logger centralizado y notificaciones toast
- 📱 Diseño responsive y accesible
app-viajes/
├── src/
│ ├── app/ # Rutas, páginas y API routes (App Router)
│ ├── components/ # UI y componentes por dominio
│ ├── lib/ # Clientes (insforge), auth, utilidades
│ └── contexts/ # Contextos de React
├── migrations/ # Esquema InsForge (fuente de verdad, ver ADR-004)
├── docs/ # Documentación colaborativa
├── .github/ # Workflows, plantillas y labels
├── CONTEXT.md # Contexto de dominio para agentes
└── README.md
- Node.js 22+
- npm
- Un proyecto de InsForge (URL + anon key + API key)
git clone https://github.com/PabloJustDevelops/Proyecto-TravelPal-App-de-Viajes.git
cd Proyecto-TravelPal-App-de-Viajes
npm install# Copiar variables de entorno
cp .env.example .env.localVariables de .env.local (nunca se versionan):
NEXT_PUBLIC_INSFORGE_URL=https://<appkey>.<region>.insforge.app
NEXT_PUBLIC_INSFORGE_ANON_KEY=<anon key>
INSFORGE_API_KEY=<api key de proyecto, solo servidor>npm run dev # Desarrollo (http://localhost:3000)
npm run lint # ESLint
npm run type-check # TypeScript
npm run test:ci # Jest
npm run test:e2e # Playwright (ver docs/TESTING.md)
npm run build # next buildnpm run preview # Build de OpenNext + wrangler dev local
npm run deploy # Build de OpenNext + deploy a CloudflareINSFORGE_API_KEY es un secreto de runtime: se sube con wrangler secret put INSFORGE_API_KEY.
📖 Documentación
- CONTEXT.md: contexto de dominio (stack, comandos, modelo de datos, glosario)
- docs/ARCHITECTURE.md: arquitectura y flujo de datos
- docs/DECISIONS/: ADRs (InsForge, Cloudflare, esquema)
- docs/TECHNICAL.md: guía técnica
- docs/TESTING.md: tests unitarios y E2E (Playwright)
- docs/CONTRIBUTING.md: cómo contribuir
- docs/COMMITS.md / docs/PR_PROCESS.md: flujo de trabajo
- Frontend: Next.js 16 (App Router), React 19, TypeScript
- Estilos: Tailwind CSS
- Backend: InsForge (Postgres, Auth, Storage) vía
@insforge/sdk - Hosting: Cloudflare Workers con
@opennextjs/cloudflare - Testing: Jest + Testing Library (unitarios y componentes) y Playwright (E2E)
- CI/CD: GitHub Actions (lint, type-check, tests, build y build del Worker)
- Internacionalización (i18n)
- Integración con más APIs de viajes
- Sistema de colaboración en viajes
- App móvil (React Native)
- Pablo Rodríguez Garijo - Desarrollador principal
- Alejandro García Redondo - Desarrollador ayudante
- Crea una rama para tu cambio
- Commit con Conventional Commits (ver docs/COMMITS.md)
- Abre un Pull Request (ver docs/PR_PROCESS.md)
MIT.
Pablo Rodríguez Garijo - @PabloJustDevelops