Files
gruperly/stack.md
Jose Selesan 1ec6200ffa chore: update @prisma/client to version 7.10.0 and add prisma.config.ts for configuration management
- Updated @prisma/client in shared package.json from ^6.0.0 to ^7.10.0.
- Modified stack.md to include generated Prisma client directory and Prisma CLI config file.
- Added prisma.config.ts for managing Prisma configuration, including datasource URL and migrations path.
2026-09-04 18:50:02 -03:00

4.3 KiB

Stack Architecture & Technical Specifications — Gruperly

Este documento define la arquitectura, convenciones y especificaciones del stack tecnológico para el desarrollo del monorepo de Gruperly. Debe ser utilizado como contexto principal por los agentes e instruccionales de IA para la generación de código y configuración del proyecto.


1. Stack Tecnológico Principal

Runtime & Monorepo Manager

  • Runtime / Package Manager: Bun (última versión estable)
  • Monorepo Tooling: Bun Workspaces (opcionalmente orquestado con Turborepo)

Backend (apps/api)

  • Framework: Hono (para Bun)
  • ORM: Prisma
  • Base de Datos: PostgreSQL
  • Autenticación: Better Auth
  • Validación de Entradas: @hono/zod-validator

Frontend (apps/web)

  • Framework / Library: React 19+ con TypeScript
  • Routing: TanStack Router (File-based routing)
  • Data Fetching & State: TanStack Query (v5)
  • UI Components: Shadcn UI
  • Styling: Tailwind CSS (v4)
  • Form Management: react-hook-form con @hookform/resolvers/zod

Shared Package (packages/shared)

  • Validación de Esquemas: Zod
  • Tipos Compartidos: Tipos inferidos de Zod (z.infer<typeof schema>) y tipos globales exportados de Prisma.

2. Estructura del Monorepo

gruperly/
├── apps/
│   ├── api/                     # Servicio Backend (Bun + Hono)
│   │   ├── src/
│   │   │   ├── db/              # Cliente e inicialización de Prisma
│   │   │   ├── lib/             # Instancia de Better Auth y helpers
│   │   │   ├── routes/          # Endpoints modularizados de Hono
│   │   │   │   ├── auth.ts
│   │   │   │   ├── groups.ts
│   │   │   │   ├── students.ts
│   │   │   │   ├── payments.ts
│   │   │   │   └── waitlist.ts
│   │   │   └── index.ts         # Entry point de la API
│   │   ├── prisma/
│   │   │   ├── schema.prisma    # Definición del modelo de datos
│   │   │   └── generated/       # Cliente generado de Prisma (gitignoreado)
│   │   ├── prisma.config.ts     # Config de Prisma CLI (datasource URL, migrations)
│   │   ├── tsconfig.json
│   │   └── package.json
│   │
│   └── web/                     # Aplicación Frontend (React PWA)
│       ├── src/
│       │   ├── components/      # Componentes de Shadcn UI y UI propia
│       │   ├── routes/          # Rutas jerárquicas de TanStack Router
│       │   ├── lib/             # Cliente de API, TanStack Query client, etc.
│       │   ├── main.tsx
│       │   └── index.css        # Tailwind CSS
│       ├── tsconfig.json
│       └── package.json
│
├── packages/
│   ├── shared/                  # Código y esquemas compartidos
│   │   ├── src/
│   │   │   ├── schemas/         # Validaciones Zod compartidas
│   │   │   │   ├── group.schema.ts
│   │   │   │   ├── student.schema.ts
│   │   │   │   └── payment.schema.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── package.json
│   │
│   └── config/                  # Configuraciones compartidas de TS/ESLint
│       ├── tsconfig.base.json
│       └── package.json
│
├── package.json                 # Workspaces de Bun
├── turbo.json                   # Configuración de pipeline de Turborepo
└── README.md

---

## 3. Sistema de Diseño Visual (UI System Tokens)

* **Background:** `#F8FAFC` (Light Mode principal)
* **Primary Color (Nav, Headings, Textos oscuros):** `#0A2540` (Azul Marino del Isologo)
* **Accent Color (Botones de acción, enlaces activos, CTAs):** `#1E90FF` (Azul Celeste de la 'y')
* **Border Radius:** `0.75rem` (`rounded-xl` en tarjetas de Shadcn)
* **Status Badges:**
  * **Paid / Al Día:** Fondo `#DCFCE7`, Texto `#10B981`
  * **Pending / Lista Espera:** Fondo `#FEF3C7`, Texto `#F59E0B`