Vende-Fácil es una aplicación desarrollada para facilitar la conexión entre vendedores de productos agrícolas y compradores de alimentos del campo. Su propósito principal es actuar como intermediaria digital, permitiendo la gestión eficiente de ventas, compras, productos y usuarios dentro del ecosistema agrícola.
Vende-Fácil maneja distintos tipos de usuarios (clientes y vendedores), así como el registro de productos con sus características específicas (tipo, tamaño, precio, disponibilidad). También permite realizar ventas y compras, y relacionarlas con los productos comercializados.
Nota: Este proyecto es exclusivamente para fines de aprendizaje y corresponde a un proyecto de estudios del programa Tecnólogo en Análisis y Desarrollo de Software del SENA. No debe ser utilizado en producción ni para fines comerciales.
- Descripción del Proyecto
- Crear y activar entorno virtual (Windows)
- Requisitos
- Instalación
- Configuración de Variables de Entorno
- Migraciones de Base de Datos
- Uso
- Ejecutar tests
- Recopilar archivos estáticos
- Tecnologías Utilizadas
- Sistema Operativo
- Conexión a la Base de Datos PostgreSQL
- Solución a Errores Comunes
- Metodología de Trabajo
- Arquitectura del Proyecto
- ORM (Object Relational Mapping)
- Patrón de Arquitectura MTV (Modelo-Plantilla-Vista)
- Importar Funciones Esenciales en las Vistas ## Bootstrap5 template pack para django-crispy-forms
- Bootstrap5 template pack para django-crispy-forms
- Ejemplo de Base de Datos
- Contribución
- Recursos Adicionales
- Versión del Proyecto
- Autor e Institución
- Licencia
-
Abre una terminal y navega a la ruta de tu proyecto:
cd /p/GITHUB/PROYECTOS/VENDEFACILNEW/VendeFacil
-
Crea el entorno virtual:
python -m venv venv
-
Activa el entorno virtual:
source venv/Scripts/activate
Ahora puedes instalar dependencias y ejecutar tu proyecto dentro del entorno virtual.
- Python 3.8 o superior
- pip
- Clona el repositorio:
git clone https://github.com/Miles-Arts/vendefacilnew.git cd vendefacilnew/VendeFacil
- Crea y activa el entorno virtual (Windows PowerShell / Git Bash):
Con esto, puedes instalar dependencias y ejecutar tu proyecto dentro del entorno virtual.
python -m venv venv source venv/Scripts/activate # Git Bash # o en PowerShell: # .\venv\Scripts\Activate.ps1
- Instala las dependencias:
pip install --upgrade pip pip install -r requirements.txt
Antes de ejecutar la aplicación, debes crear una carpeta llamada .env
en la raíz del proyecto. Dentro de esta carpeta, crea un archivo para definir las variables de entorno necesarias para la conexión a la base de datos y la seguridad de la aplicación. Ejemplo de variables que debes agregar:
SECRET_KEY=tu_clave_secreta
PGSQL_HOST=localhost
PGSQL_USER=postgres
PGSQL_PASSWORD=tu_contraseña
PGSQL_DATABASE=VendeFacil
Para gestionar los cambios en el esquema de tu base de datos, sigue estos pasos:
- Crea los archivos de migración basados en los cambios de tus modelos:
python manage.py makemigrations
- Aplica las migraciones para actualizar la base de datos:
python manage.py migrate
Para levantar el servidor de desarrollo:
python manage.py runserver
python manage.py test
python manage.py collectstatic
Este proyecto está licenciado bajo la MIT License.
- Django
- JSON
- PostgreSQL
- ENV o VENV
- Postman
- HTML
- CSS
- JavaScript
- Bootstrap
- Git
- GitHub
- Visual Studio Code
- Copilot Pro
- Canva
- Creadores de UML
- Windows 11
- Host: localhost
- Usuario: postgres
- Contraseña: 1234
- Base de datos: VendeFacil
- Puerto: 5432
- Verifica las rutas en el navegador.
- Cierra y abre Visual Studio Code si los cambios no se reflejan.
- Actualiza la página web con
Ctrl + F5
. - Reinicia el servidor local si es necesario.
- Cierra y abre una nueva terminal si el entorno virtual no funciona correctamente.
Este proyecto utiliza la metodología Kanban para la gestión y organización de tareas. Kanban permite visualizar el flujo de trabajo, identificar cuellos de botella y mejorar la eficiencia del equipo.
El proyecto sigue la estructura estándar de Django y utiliza una arquitectura MVC (Modelo-Vista-Controlador) implícita en el patrón MTV (Modelo-Plantilla-Vista) de Django:
- VendeFacil/: Contiene la configuración principal del proyecto (
settings.py
,urls.py
, etc.). - Productos/ (y otras apps): Cada aplicación Django gestiona una funcionalidad específica (ej. productos). Contiene:
- models.py (Modelo): Define la estructura de los datos y la interacción con la base de datos.
- views.py (Vista en MTV, Controlador en MVC): Maneja la lógica de la aplicación, procesa las solicitudes HTTP y conecta los modelos con las plantillas.
- templates/ (Plantilla): Archivos HTML que definen la presentación de la interfaz de usuario.
- static/: Archivos estáticos como CSS, JavaScript e imágenes.
- urls.py: Define las rutas URL específicas de la aplicación.
Esta arquitectura permite separar responsabilidades, facilitando el mantenimiento y la escalabilidad del proyecto.
El proyecto utiliza un ORM (Object Relational Mapping) para interactuar con la base de datos de manera eficiente y simplificada. Esto permite trabajar con modelos de datos en lugar de escribir consultas SQL directamente, facilitando el desarrollo y mantenimiento del proyecto.
El proyecto sigue el patrón de arquitectura MTV (Modelo-Plantilla-Vista), que organiza el código en tres componentes principales:
- Modelo (Model): Gestiona la lógica de datos y la interacción con la base de datos.
- Plantilla (Template): Define la presentación de la interfaz de usuario mediante archivos HTML.
- Vista (View): Controla la lógica de la aplicación y conecta los modelos con las plantillas.
Este patrón facilita la separación de responsabilidades, mejorando la escalabilidad y el mantenimiento del proyecto.
En las vistas de Django, es común utilizar las funciones render
y redirect
para manejar la lógica de las respuestas HTTP:
render
: Se utiliza para renderizar plantillas HTML y devolverlas como respuesta al navegador. Es necesario importarla desdedjango.shortcuts
.redirect
: Se utiliza para redirigir al usuario a otra URL. También se importa desdedjango.shortcuts
.
from django.shortcuts import render, redirect
Estas funciones son fundamentales para manejar la interacción entre las vistas y las plantillas en un proyecto Django.
Instala este plugin usando pip:
$ pip install crispy-bootstrap5
Debes actualizar el archivo de configuración (settings.py
) de tu proyecto para agregar crispy_forms
y crispy_bootstrap5
a INSTALLED_APPS
. También debes establecer bootstrap5
como un template pack permitido y como el template pack por defecto para tu proyecto:
INSTALLED_APPS = (
...
"crispy_forms",
"crispy_bootstrap5",
...
)
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
CRISPY_TEMPLATE_PACK = "bootstrap5"
A continuación, se presenta un ejemplo de script para la creación de tablas en PostgreSQL que se utilizarán en el proyecto:
-- Script de creación de tablas para PostgreSQL
-- Tablas: id_personas y productos
CREATE TABLE id_personas (
documento INT NOT NULL PRIMARY KEY,
nombres CHAR(250) NOT NULL,
apellidos CHAR(250) NOT NULL,
correo VARCHAR(250) NOT NULL,
metodo_de_pago INT NOT NULL,
fecha_nacimiento DATE NOT NULL,
direccion VARCHAR(250) NOT NULL,
celular VARCHAR(250) NOT NULL
);
CREATE TABLE productos (
id_producto INT NOT NULL PRIMARY KEY,
categoria_producto INT NOT NULL,
id_compra FLOAT NOT NULL,
caracteristicas_producto VARCHAR(250) NOT NULL,
tipo_producto INT NOT NULL,
tamaño_producto INT NOT NULL,
precio_producto FLOAT NOT NULL,
mes_del_producto INT NOT NULL,
nombre_producto VARCHAR(250) NOT NULL
);
Si deseas contribuir al proyecto, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama para tu funcionalidad o corrección de errores:
git checkout -b nombre-de-tu-rama
- Realiza tus cambios y haz commits descriptivos:
git commit -m "Descripción de tu cambio"
- Sube tus cambios a tu repositorio fork:
git push origin nombre-de-tu-rama
- Abre un pull request en el repositorio original.
Actualmente en la versión 0.0.1 (etapa temprana de desarrollo). Se sigue el esquema de versionado semántico.
https://www.flaticon.es/autores/grow-studio
- Autor: Milton Figueredo (LinkedIn | GitHub)
- Institución: SENA - Servicio Nacional de Aprendizaje
- Programa: Tecnólogo en Análisis y Desarrollo de Software
- Fecha: Mayo 2025
Este proyecto está licenciado bajo la Licencia MIT.
© 2025 Milton Figueredo