- SITIO WEB
- YT
- Nelson Lassa Franco Pagano Yamil Yunes Marianela Purretta Joaquín Viñolo Mauro Barrosoo
Sistema de estadía
En esta aplicación se podrán publicar alojamientos con sus respectivas características. Estos alojamientos se almacenaran en una base de datos, permitiendo así mostrar estos y que los usuarios puedan hacer uso del servicio.
El usuario podrá iniciar sesión y registrarse en caso de no tener credenciales. Además, contará con un filtro que permitirá la búsqueda por localidad y fecha.
Aplicación Python que permite a los usuarios publicar y buscar alojamientos para estancias temporales. Los usuarios pueden registrarse, iniciar sesión y tener roles duales: publicar alojamientos o contratar servicios de alojamiento. La aplicación utiliza diferentes bases de datos MySQL para almacenar la información de los alojamientos y los usuarios.
Lenguajes:
- Python versión: 11 - 12
- MySQL
Visualización: Tkinter
-
LoginEl usuario deberá ingresar sus credenciales y estas serán verificadas mediante una consulta a la base de datos. Esto le permitirá ingresar a la aplicación y hacer uso de sus funciones - servicios.
Este proceso implica los siguientes pasos:
- Ingreso de credenciales.
- Validación de credenciales.
- Acceso a funcionalidades.
-
RegisterSe utiliza para gestionar el proceso de registro de usuarios. Realizando validaciones de los datos ingresados por el usuario, como por ejemple el e-mail, corrigiéndolos en caso de ser necesario y luego los almacenándolos en la base de datos.
-
Base de datosLa aplicación cuenta con dos bases de datos relacionales (MySQL) conectadas, creando así un sistema organizado para almacenar, gestionar y recuperar información de manera eficiente.
Esto permite:
- Estructura organizada.
- Acceso y recuperación de datos.
- Gestión de datos.
- Seguridad y control de acceso.
- Integridad de datos.
-
Board MindEste es el menú o tablero principal de la aplicación en la cual se mostrará los datos del usuario que inició sesión.
Además, en el se podrán visualizar diferentes opciones de selección (botones interactivos).
- Buscar.
- Agregar.
- Administrar.
-
User DataDatos del Usuario cargados en la Base de Datos:
- Id
- Username
- Password
- First_Name
- Last_Name
- Age
- Phone
- Cash
-
Look forA este punto los hospedajes ingresados por el usuario ya deben estar disponibles con los siguientes datos:
- Id
- Id_Stay
- Id_User_Owner
- Id_User Renter
- Start_Date
- End_Date
- Status
-
FilterPermite filtrar al cliente los hospedajes mediante dos apartados: provincia, departamento y localidad y por fecha de entrada y salida.
-
Search ResultTraerá a pantalla los hospedajes disponibles de acuerdo al filtro y le permitirá al usuario seleccionar entre los alojamientos filtrados.
-
Selection ViewMostrará al usuario el hospedaje seleccionado y las características del mismo.
-
Rental CreationAquí el usuario podrá cargar hospedajes para su posterior alquiler con los datos:
- Id
- Name
- Location
- Night_Price
- Capacity
- Type
- Image
-
Rental EditAquí el usuario podrá editar los hospedajes que se asocien a su id
-
Requisitos
Para facilitar la instalación de dependencias necesarias se creó un archivo llamado “requierement.txt”. El mismo instala todos los requisitos necesarios.
-
Archivo
bcrypt==4.1.3 tkcalendar~=1.6.1 python-dotenv~=1.0.1 mysql~=0.0.3 mysql-connector-python~=8.4.0
-
¿Para qué las dependencias?
Para conectar una base de datos MySQL a python es necesario instalar una dependencia llamada “mysql connector”.
¿Cómo lo realizamos?
Desde una terminal utilizaremos el siguiente comando:
**pip** install mysql-connector-python
-
Variables de entorno
Es necesario crear un archivo .env para las credenciales:
DB_HOST_1=localhost (host donde se encuentra la base de datos) DB_PORT_1=3306 (numero de puerto) DB_USER_1=tu_usuario DB_PASSWORD_1=tu_contraseña DB_NAME_1=nombre_de_base_de_datos DB_HOST_2=localhost (host donde se encuentra la base de datos) DB_PORT_2=3306 (numero de puerto) DB_USER_2=tu_usuario DB_PASSWORD_2=tu_contraseña DB_NAME_2=nombre_de_base_de_datos
Debemos instalar dotenv (para hacer uso de estas credenciales) desde la terminal utilizando este código:
pip install python-dotenv
-
-
La base de datos estará conformada por dos base de datos:
DB_USERS
DB_STAYS
Tendrán 6 tablas en total:
-
DB_USERS
-
Usuarios
Nombre del Campo Tipo de Dato Descripción user_id INT **Identificador único del usuario** username VARCHAR(50) Nombre de usuario password VARCHAR(255) Contraseña del usuario (encriptada) firstname VARCHAR(50) Nombre del usuario lastname VARCHAR(50) Apellido del usuario email VARCHAR(100) Correo electrónico del usuario birthdate DATE Fecha de nacimiento del usuario age INT Edad del usuario phone VARCHAR(20) Número de teléfono del usuario money DECIMAL(10, 2) Saldo de dinero del usuario active BOOLEAN Indica si el usuario está activo o no
-
-
DB_STAYS
-
Departamentos
Nombre del Campo Tipo de Dato Descripción provincia_id INT Identificador único de la provincia nombre VARCHAR(50) Nombre del departamento
-
Hosting
Nombre del Campo Tipo de Dato Descripción hosting_id INT Identificador único del hosting owner_id INT Identificador del propietario del hosting name VARCHAR(100) Nombre del hosting address VARCHAR(255) Dirección del hosting location_id INT Identificador de la ubicación capacity INT Capacidad del hosting daily_cost INT Costo diario de alojamiento state TINYINT Estado del hosting (0: inactivo, 1: activo)
-
Localidades
Nombre del Campo Tipo de Dato Descripción localidad_id INT Identificador único de la localidad departamento_id INT Identificador del departamento nombre VARCHAR(100) Nombre de la localidad
-
Provincias
Nombre del Campo Tipo de Dato Descripción provincia_id INT Identificador único de la provincia nombre VARCHAR(100) Nombre de la provincia
-
Rental_Register
Nombre del Campo Tipo de Dato Descripción rent_id INT Identificador único del registro de alquiler locator_id INT Identificador del locador (arrendador) renter_id INT Identificador del arrendatario hosting_id INT Identificador del hosting start_date DATE Fecha de inicio del alquiler end_date DATE Fecha de fin del alquiler number_of_days INT Número de días de alquiler total_cost INT Costo total del alquiler
-
-
MVC
Utilizamos este patrón arquitectónio para la distribución, estructuración del proyecto, facilitando así la separación del mismo.
-
¿Qué es MVC?
MVC (Model-View-Controller) es un patrón arquitectónico ampliamente utilizado en el desarrollo de software, especialmente en aplicaciones web y GUI (interfaces gráficas de usuario). Su objetivo principal es separar las preocupaciones dentro de una aplicación, dividiéndola en tres componentes principales: el Modelo, la Vista y el Controlador. Cada uno de estos componentes tiene responsabilidades específicas, lo que promueve un diseño más estructurado, modular y fácil de mantener.
-
Desglose del MVC:
- Modelo (Model):
- Representa los datos y la lógica empresarial de la aplicación.
- Gestiona el acceso y la manipulación de los datos.
- No depende de la interfaz de usuario ni de cómo se presentan los datos al usuario.
- Puede incluir estructuras de datos, clases, lógica de validación, acceso a la base de datos, etc.
- En términos simples, es el "núcleo" de la aplicación que gestiona el comportamiento de los datos.
- Vista (View):
- Es responsable de la presentación de los datos al usuario y de la interfaz de usuario.
- Recibe datos del Modelo y los muestra de manera que sea comprensible para el usuario final.
- No realiza lógica de negocio ni manipula datos; simplemente muestra la información.
- Puede ser una página web, una ventana de GUI, una plantilla HTML, etc.
- Controlador (Controller):
- Actúa como intermediario entre el Modelo y la Vista.
- Gestiona las interacciones del usuario y las solicitudes de entrada.
- Interpreta las acciones del usuario (por ejemplo, clics de botón, entradas de formulario) y realiza las operaciones necesarias.
- Actualiza el Modelo según las acciones del usuario y actualiza la Vista para reflejar los cambios en los datos.
- Modelo (Model):
-






