尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗App real de control comercial del equipo de ventas: mismo diseño y misma lógica que el prototipo de Claude.ai, reconstruida sobre Next.js + TypeScript + Tailwind CSS, con Supabase (Postgres + Auth) como base de datos permanente y deploy en Vercel.
app/globals.css)supabase/schema.sql. Crea las tablas
(sellers, period, contacts, profiles), los enums, las políticas de
Row Level Security y carga los datos iniciales de vendedores y período.if not exists / on conflict.contacts, y solo ve
su propia fila en sellers.period es de lectura para cualquier usuario autenticado; solo un admin la
edita.profiles vincula cada usuario de Supabase Auth con un seller_id (rol
seller) o con el rol admin.Las contraseñas ya no viven en el código — se migran a usuarios reales de Supabase Auth. Para crearlos (una sola vez, o cuando cambien las contraseñas):
NEXT_PUBLIC_SUPABASE_URL=https://ihqulihyqvfuljfeynaq.supabase.co \
SUPABASE_SERVICE_ROLE_KEY=<service_role key, Project Settings → API> \
npm run seed:users
Esto crea (o actualiza) estos usuarios y su fila en profiles:
| Nombre | Rol | Contraseña inicial | |
|---|---|---|---|
| Agus | [email protected] | seller | AP1234567 |
| Mateo | [email protected] | seller | ML1234567 |
| Fran | [email protected] | seller | FC1234567 |
| Panel de control | [email protected] | admin | FM2025 |
Cambiá las contraseñas cuando quieras desde el dashboard de Supabase Auth (Authentication → Users) — no hace falta tocar código.
Importante: SUPABASE_SERVICE_ROLE_KEY nunca va en .env.local para
desarrollo del front, ni en Vercel. Se usa una sola vez, en tu máquina, solo
para correr seed:users.
cp .env.local.example .env.local # ya viene con la URL y la anon key del proyecto
npm install
npm run dev
Abrí http://localhost:3000.
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYiseven-control.vercel.app.vendedor, fecha, nombre_cliente, telefono, estado, observacion).contacts de Supabase (Table Editor → Import
data from CSV), mapeando vendedor al seller_id correspondiente
(agus, mateo o fran) y estado a los valores del enum
(consulta, respondio, presupuesto, seguimiento, vendido,
perdido).app/ Rutas (login, vendedor, admin)
components/
ui/ Piezas reutilizables (PaceGauge, KpiCard, gráficos…)
login/ Pantalla de login
vendedor/ Vista de vendedor
admin/ Tabs del panel admin
lib/
calc.ts Toda la lógica de negocio (ritmo, semáforo, embudo,
diagnóstico, comparación semanal, CSV…), pura y
testeable, sin dependencias de Supabase.
auth.ts Helpers de sesión/rol para Server Components.
supabase/ Clientes de Supabase (browser, server, middleware).
supabase/schema.sql Esquema + RLS + datos iniciales.
scripts/seed-users.mjs Alta de usuarios de Supabase Auth (local, con
service role key).
Toda la lógica de cálculo vive en lib/calc.ts: ventas actuales, ritmo
actual vs. necesario, semáforo, embudo, diagnóstico automático por
vendedor, proyección de cierre del equipo y comparación semana a semana.
Nada de esto está hardcodeado — se deriva siempre de contacts, sellers y
period.
Suma a la misma app el fichaje desde el iPhone de la oficina, las tareas del día de cada integrante, los pedidos de stock agrupados por viaje y los turnos del sábado.
[email protected], [email protected] y [email protected], cada uno con su contraseña.supabase/migrations/2026-11-oficina.sql. Crea las tablas, carga el equipo
y sus tareas fijas, y vincula los usuarios nuevos. Se puede volver a correr.