Este proyecto implementa un sistema de gestión de ventas en Python con conexión a una base de datos PostgreSQL. El sistema permite insertar vendedores y ventas, consultar datos de las tablas, y realizar una consulta para obtener el mejor vendedor del mes.
- Descripción del Proyecto
- Requisitos
- Estructura del Proyecto
- Configuración
- Base de Datos
- Funciones Principales
- Uso
- Ejemplo de Flujo de Trabajo
- Archivo
.gitignore
El sistema se desarrolló en Python utilizando la librería psycopg2 para conectar con una base de datos PostgreSQL llamada tienda_edutecno_DB. Este sistema incluye un menú principal que permite:
- Insertar un nuevo vendedor.
- Insertar una nueva venta.
- Consultar todos los vendedores.
- Consultar todas las ventas.
- Consultar el mejor vendedor del mes.
- Python 3
- PostgreSQL
- Librería
psycopg2para Python (se puede instalar conpip install psycopg2)
El proyecto se ha modularizado, separando cada función en archivos individuales para facilitar el mantenimiento y la expansión.
project-root/
│
├── db_connection.py # Conexión a la base de datos
├── insert_vendedor.py # Función para insertar un vendedor
├── insert_venta.py # Función para insertar una venta
├── consult_vendedores.py # Función para consultar vendedores
├── consult_ventas.py # Función para consultar ventas
├── consult_mejor_vendedor.py # Función para consultar el mejor vendedor del mes
├── main.py # Menú principal que gestiona todas las funciones
├── .gitignore # Ignorar el entorno virtual 'venv'
└── README.md # Archivo de documentación
-
Clona este repositorio y navega al directorio del proyecto:
git clone https://github.com/tu_usuario/tu_proyecto.git cd tu_proyecto -
Crea y activa un entorno virtual (opcional pero recomendado):
python3 -m venv venv source venv/bin/activate # En Linux/macOS venv\Scripts\activate # En Windows
-
Instala la librería
psycopg2para conectar Python con PostgreSQL:pip install psycopg2
-
Modifica los parámetros de conexión en el archivo
db_connection.pypara que coincidan con la configuración de tu base de datos PostgreSQL.
Usa el siguiente código SQL para crear las tablas necesarias en PostgreSQL:
CREATE TABLE vendedor (
vendedor_id SERIAL PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
apellido VARCHAR(50) NOT NULL
);
CREATE TABLE ventas (
venta_id SERIAL PRIMARY KEY,
fecha DATE NOT NULL,
monto DECIMAL(10, 2) NOT NULL,
vendedor_id INT NOT NULL,
FOREIGN KEY (vendedor_id) REFERENCES vendedor(vendedor_id)
);La tabla ventas está relacionada con vendedor a través del campo vendedor_id, lo que permite consultar las ventas de cada vendedor.
Cada funcionalidad está separada en un archivo individual para facilitar la modularidad.
db_connection.py: Contiene la funciónconnect_to_db()para establecer la conexión con la base de datos.insert_vendedor.py: Permite insertar un nuevo vendedor pidiendonombreyapellidoal usuario.insert_venta.py: Permite insertar una venta, solicitando elvendedor_id,fecha, ymontode la venta.consult_vendedores.py: Muestra una lista de todos los vendedores.consult_ventas.py: Muestra una lista de todas las ventas.consult_mejor_vendedor.py: Realiza una consulta para obtener el mejor vendedor de un mes y año específicos, basándose en el monto total de ventas.
-
Ejecuta el archivo
main.pypara acceder al menú principal:python main.py
-
Sigue las instrucciones del menú para realizar cada acción.
- Opción 1: Inserta un nuevo vendedor solicitando el
nombreyapellido. - Opción 2: Inserta una venta pidiendo el
vendedor_id,fecha, ymonto. - Opción 3: Consulta todos los vendedores y muestra sus detalles.
- Opción 4: Consulta todas las ventas y muestra sus detalles.
- Opción 5: Consulta el mejor vendedor del mes y año especificados, mostrando su
nombre,apellido, ytotal de ventas. - Opción 6: Salir del programa.
-
Ejecuta el menú principal:
python main.py
-
Selecciona Opción 1 e ingresa un nuevo vendedor (ej., Juan Pérez).
-
Selecciona Opción 2 e ingresa una venta (ej., vendedor_id = 1, fecha = 2024-11-15, monto = 500).
-
Selecciona Opción 3 para ver la lista de vendedores.
-
Selecciona Opción 4 para ver la lista de ventas.
-
Selecciona Opción 5, ingresa el mes y año (11 y 2024) para ver el mejor vendedor del mes.
Para ignorar el entorno virtual en Git, incluye un archivo .gitignore en el directorio raíz del proyecto con el siguiente contenido:
# Ignorar el entorno virtual
venv/
De esta forma, el entorno venv no se subirá al repositorio en GitHub.
Este sistema es una implementación básica para gestionar y consultar ventas en una base de datos PostgreSQL, permitiendo una estructura modular y clara. Se puede expandir fácilmente para incluir más funcionalidades, como reportes automáticos y gráficos de análisis.