Skip to content

melitacruces/qyin

Repository files navigation

💚 QYin

Gestor de finanzas personales (SaaS) — tus finanzas, claras y bajo control

Construido con Next.js 15 · React 19 · SQLite (local) · Drizzle ORM · Tailwind CSS


QYin reúne tus cuentas, presupuestos, metas, deudas e inversiones en un solo lugar, con insights automáticos que te dicen exactamente dónde se va tu dinero. Esta es la Fase 1: una base SaaS multi-usuario funcional de punta a punta, con el modelo de datos de las 16 capas del producto y los módulos núcleo operativos.

✨ Demo

Usuario:    demo@qyin.app
Contraseña: demo1234

El seed crea una usuaria con 4 cuentas, ~86 transacciones de 4 meses, presupuestos, metas, deudas y facturas — suficiente para ver el dashboard y los reportes con vida.

🚀 Puesta en marcha

Requisitos: Node.js ≥ 22.5 (recomendado 24+). No se necesita compilador de C/C++: la persistencia usa el módulo nativo node:sqlite incluido en Node.

# 1. Instalar dependencias
npm install

# 2. Variables de entorno (opcional; hay valores por defecto)
cp .env.example .env.local

# 3. Crear el esquema de la base de datos local (./data/qyin.db)
npm run db:generate   # genera el SQL desde el esquema (ya incluido en /drizzle)
npm run db:migrate    # aplica las migraciones

# 4. Cargar datos demo (opcional pero recomendado)
npm run db:seed

# 5. Levantar en desarrollo
npm run dev           # http://localhost:3000

Para producción: npm run build && npm run start.

📜 Scripts

Script Qué hace
npm run dev Servidor de desarrollo (hot reload)
npm run build Build de producción
npm run start Sirve el build de producción
npm run db:generate Genera migraciones SQL desde src/db/schema.ts
npm run db:migrate Aplica las migraciones a ./data/qyin.db
npm run db:seed Carga datos de demostración
npm run db:studio Explorador visual de la BD (Drizzle Studio)

🧱 Stack y decisiones clave

  • Next.js 15 (App Router) con React 19: Server Components para leer datos y Server Actions para mutar (sin capa de API REST aparte).
  • SQLite local vía node:sqlite (síncrono, cero dependencias nativas) detrás de un shim drop-in de better-sqlite3Drizzle ORM type-safe. Migrable a Postgres/Turso sin reescribir la lógica. Ver docs/ARCHITECTURE.md.
  • Autenticación propia multi-tenant: contraseñas con scrypt, sesiones en BD, cookies httpOnly, protección de rutas por middleware.
  • Tailwind CSS con tema oscuro fintech y gráficos en SVG propios (sin librerías de charts) → bundle pequeño y render en servidor.
  • Dinero en centavos (enteros) en toda la app: nada de floats. Ver src/lib/money.ts.

📁 Estructura

src/
├── app/
│   ├── (auth)/            # login, registro y sus server actions
│   ├── (app)/             # app privada (sidebar): dashboard, accounts, transactions,
│   │                      #   budgets, goals, debts, reports, categories, settings
│   ├── onboarding/        # alta de la primera cuenta
│   ├── page.tsx           # landing de marketing + precios
│   └── globals.css        # tema (variables CSS) + utilidades
├── components/            # UI, gráficos SVG, formularios cliente, navegación
├── db/
│   ├── schema.ts          # esquema completo (16 capas, ~30 tablas)
│   ├── index.ts           # conexión Drizzle + node:sqlite
│   ├── migrate.ts         # aplica migraciones
│   └── seed.ts            # datos demo
├── lib/                   # dinero, formato, auth, sesión, queries, finanzas, insights
└── middleware.ts          # protección de rutas privadas

vendor/better-sqlite3-shim/  # adaptador node:sqlite → API de better-sqlite3
docs/                        # ARCHITECTURE · ROADMAP · BUSINESS

📚 Documentación

  • Arquitectura — modelo de datos, multi-tenancy, seguridad, el shim de SQLite y el camino a la nube.
  • Roadmap — las 16 capas del producto: qué está hecho y qué sigue.
  • Modelo de negocio — planes, monetización y go-to-market.

⚠️ Aviso

Proyecto educativo / base de producto. No constituye asesoría financiera. Antes de producción real revisa el checklist de seguridad y cumplimiento en la documentación.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors