160 lines
3.7 KiB
Plaintext
160 lines
3.7 KiB
Plaintext
Crea una aplicación web para el control de ingresos por comisiones y gastos personales con soporte multiusuario y un bot de Telegram integrado.
|
||
|
||
## Descripción general
|
||
|
||
La aplicación debe permitir a múltiples usuarios registrar ventas diarias por mes mediante un calendario interactivo, calcular comisiones basadas en un porcentaje configurable, sumar un sueldo mensual fijo, registrar gastos y mostrar el dinero restante tanto mensual como por quincena.
|
||
|
||
Cada usuario debe tener acceso únicamente a su propia información.
|
||
|
||
## Funcionalidades principales
|
||
|
||
### 1. Sistema multiusuario
|
||
|
||
* Registro e inicio de sesión
|
||
* Cada usuario solo puede ver y modificar sus propios datos
|
||
* Relación de todos los datos con user_id
|
||
|
||
### 2. Gestión por mes
|
||
|
||
* Crear, ver y editar meses por usuario
|
||
|
||
### 3. Calendario de captura (IMPORTANTE)
|
||
|
||
* Cada mes debe mostrarse como un calendario visual
|
||
* El usuario NO captura la fecha manualmente
|
||
* El usuario selecciona un día haciendo clic en el calendario
|
||
|
||
Al seleccionar un día:
|
||
|
||
* Se abre un formulario/modal para capturar:
|
||
|
||
* Ventas registradas por el usuario
|
||
* Ventas del sistema de la empresa
|
||
|
||
El sistema debe:
|
||
|
||
* Guardar automáticamente la fecha según el día seleccionado
|
||
* Mostrar visualmente en el calendario:
|
||
|
||
* Días con información registrada
|
||
* Días sin registrar
|
||
* Indicadores rápidos (ej: colores o íconos)
|
||
|
||
### 4. Registro diario de ventas
|
||
|
||
Por cada día seleccionado:
|
||
|
||
* Ventas registradas por el usuario
|
||
* Ventas del sistema de la empresa
|
||
|
||
Cálculos:
|
||
|
||
* Diferencia entre valores
|
||
* Comisión diaria
|
||
|
||
### 5. Configuración de variables por usuario
|
||
|
||
Cada usuario puede definir:
|
||
|
||
* Porcentaje de comisión
|
||
* Sueldo mensual
|
||
|
||
### 6. Cálculos automáticos
|
||
|
||
* Comisión diaria = ventas del sistema × porcentaje
|
||
* Total mensual de comisiones
|
||
* Total ingresos = sueldo + comisiones
|
||
* Total gastos
|
||
* Balance final
|
||
|
||
### 7. Gestión de gastos
|
||
|
||
* Agregar múltiples gastos:
|
||
|
||
* Descripción
|
||
* Monto
|
||
* Fecha (opcional o seleccionable desde calendario)
|
||
|
||
### 8. Cálculo por quincena
|
||
|
||
* Primera quincena (1–15)
|
||
* Segunda quincena (16–fin)
|
||
|
||
Mostrar:
|
||
|
||
* Ingresos
|
||
* Gastos
|
||
* Balance
|
||
|
||
### 9. Dashboard
|
||
|
||
* Resumen mensual
|
||
* Totales
|
||
* Vista de calendario
|
||
* Tabla opcional de ventas
|
||
* Resumen por quincena
|
||
|
||
## Integración con Telegram
|
||
|
||
### Vinculación segura
|
||
|
||
* El usuario inicia sesión en la web
|
||
* Genera un código único de vinculación
|
||
* En Telegram, el usuario envía ese código al bot
|
||
* El bot vincula el chat_id con el usuario
|
||
|
||
### Funcionalidades del bot
|
||
|
||
El usuario puede:
|
||
|
||
* Registrar ventas:
|
||
comando: /venta 1500 1400
|
||
(el sistema usa automáticamente la fecha actual)
|
||
|
||
* Registrar gastos:
|
||
comando: /gasto comida 200
|
||
|
||
* Consultar resumen:
|
||
comando: /resumen
|
||
|
||
* Consultar quincena:
|
||
comando: /quincena
|
||
|
||
### Seguridad
|
||
|
||
* No pedir usuario/contraseña en Telegram
|
||
* Validar chat_id vinculado
|
||
* Solo permitir acceso a datos del usuario vinculado
|
||
|
||
## Base de datos (sugerida)
|
||
|
||
* users (id, name, email, password)
|
||
* telegram_accounts (id, user_id, chat_id)
|
||
* months (id, user_id, name, year)
|
||
* daily_sales (id, user_id, month_id, date, user_sales, system_sales)
|
||
* settings (id, user_id, commission_percentage, monthly_salary)
|
||
* expenses (id, user_id, month_id, description, amount, date)
|
||
|
||
## Requisitos técnicos
|
||
|
||
* Backend: Laravel
|
||
* Frontend: Blade o Vue
|
||
* Base de datos: MySQL
|
||
* Uso de librería de calendario (ej: FullCalendar)
|
||
|
||
## Extras opcionales
|
||
|
||
* Exportar a Excel/CSV
|
||
* Gráficas
|
||
* Notificaciones por Telegram
|
||
|
||
## UI/UX
|
||
|
||
* Interfaz tipo dashboard
|
||
* Calendario como elemento principal
|
||
* Colores para indicar estado de días
|
||
* Captura rápida mediante modales
|
||
|
||
La aplicación debe ser rápida, intuitiva y enfocada en facilitar la captura diaria sin errores y todos los logs se deben de guardar en la carpeta logs de la raiz.
|
||
|