Este es un pequeño sistema CRM (Customer Relationship Management) que se ejecuta desde la terminal usando Node.js y PostgreSQL. Permite gestionar clientes, sus sucursales y productos asociados de forma sencilla e interactiva.
- Node.js
- PostgreSQL
- Inquirer (menú interactivo)
- Chalk (colores en consola)
- pg (cliente de PostgreSQL)
CREATE TABLE clientes (
id SERIAL PRIMARY KEY,
nombre TEXT NOT NULL,
correo TEXT,
activo BOOLEAN DEFAULT TRUE
);CREATE TABLE sucursales (
id SERIAL PRIMARY KEY,
cliente_id INTEGER REFERENCES clientes(id),
direccion TEXT NOT NULL
);CREATE TABLE productos (
id SERIAL PRIMARY KEY,
nombre TEXT NOT NULL,
precio NUMERIC NOT NULL
);CREATE TABLE clientes_productos (
cliente_id INTEGER REFERENCES clientes(id),
producto_id INTEGER REFERENCES productos(id),
PRIMARY KEY (cliente_id, producto_id)
);-
Clonar el repositorio:
git clone https://github.com/tu-usuario/mini-crm-cli.git cd mini-crm-cli -
Instalar dependencias:
npm install
-
Editar la configuración de conexión en
db.jssi es necesario. -
Crear las tablas en PostgreSQL con los comandos SQL anteriores.
-
Ejecutar la app:
node index.js
O si configurás tu
package.json:npm start
| Opción | Descripción |
|---|---|
| ➕ Agregar cliente | Crea un nuevo cliente con nombre y correo. |
| 📝 Editar cliente | Permite modificar el nombre o correo de un cliente existente. |
| ❌ Eliminar cliente | Elimina lógicamente un cliente (lo marca como inactivo). |
| 📄 Ver resumen de un cliente | Muestra nombre, correo, productos y sucursales de un cliente. |
| 🏢 Agregar sucursal | Añade una dirección física asociada a un cliente. |
| 📦 Agregar producto | Crea un producto que luego puede ser asignado a clientes. |
| ➕ Asignar producto a cliente | Relaciona un producto existente con un cliente. |
| 🛒 Listar productos de cliente | Muestra los productos asociados a un cliente. |
| 🚪 Salir | Cierra la aplicación. |
Este proyecto está bajo la licencia MIT.