Skip to content

carperca23/integridos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyecto Integridos

PAI1 - SSII

Carlos Pérez Cantalapiedra

Jesús Domenech Galiano


Este proyecto se compone de dos módulos principales:

  • Servidor (/server)
  • Cliente (/client)

Cada uno tiene su propio entorno de configuración (.env) y puede ejecutarse de forma independiente. El servidor se encarga de la gestión de la base de datos y la lógica central, mientras que el cliente interactúa con él mediante peticiones.


Requisitos previos

Antes de comenzar, asegúrate de tener instalado:

  • Python 3.10+
  • MariaDB
  • Make (en Linux y macOS viene instalado; en Windows se puede usar con Git Bash o WSL)

1️⃣ Configuración inicial del entorno

Desde la raíz del proyecto (INTEGRIDOS/), ejecuta:

make setup

Este comando:

  1. Crea un entorno virtual (venv/)
  2. Instala las dependencias definidas en requirements.txt
  3. Genera el archivo .env.template si no existe (deberás completarlo manualmente)

2️⃣ Configurar variables de entorno

🔹 Servidor

Ve a la carpeta /server y copia el archivo de plantilla (si no existe):

cp .env.template .env

Edita el .env con tus valores:

# Configuración del servidor
SERVER_HOST=localhost
SERVER_PORT=8001

# Configuración criptográfica
PEPPER=TU_PEPPER_AQUI
HMAC_KEY=TU_HMAC_KEY_AQUI

# Configuración de base de datos (MariaDB)
DB_USER=mi_usuario
DB_PSSWRD=mi_contraseña
DB_HOST=localhost
DB_PORT=3306
DB_NAME=integridos

⚠️ Importante: el servidor es quien accede directamente a la base de datos.


🔹 Cliente

De igual forma, entra en la carpeta /client y crea tu .env:

cp .env.template .env

Edita el archivo .env con los datos de conexión al servidor:

# Configuración del cliente
SERVER_HOST=localhost
SERVER_PORT=8001

# Configuración criptográfica
HMAC_KEY=LA_MISMA_HMAC_KEY_DEL_SERVIDOR

El cliente debe compartir el mismo HMAC_KEY que el servidor para poder validar mensajes y firmas correctamente.


3️⃣ Crear la base de datos

  1. Inicia el servidor de MariaDB.

  2. Crea una base de datos vacía:

    mysql -u mi_usuario -p -e "CREATE DATABASE integridos;"
  3. Importa el esquema desde el archivo SQL que se encuentra en /server:

    mysql -u mi_usuario -p integridos < server/integridos.sql

Esto creará todas las tablas y relaciones necesarias.


4️⃣ Ejecutar los módulos

🔹 Ejecutar el servidor

Desde la raíz del proyecto o desde la carpeta /server:

python server/server.py

El servidor arrancará usando la configuración definida en server/.env.


🔹 Ejecutar el cliente

En una nueva terminal (manteniendo el servidor corriendo):

python client/client.py

El cliente se conectará al servidor usando las variables configuradas en client/.env.


5️⃣ Comandos útiles del Makefile

Comando Descripción
make setup Crea el entorno virtual, instala dependencias y genera .env.template
make clean Elimina el entorno virtual (venv/)

Estructura del proyecto

INTEGRIDOS/
├── client/
│   ├── .env
│   ├── client_crypto_utils.py
│   ├── client_functions.py
│   ├── client.py
│   ├── config_client.py
│   └── logs/
│
├── server/
│   ├── .env
│   ├── config_server.py
│   ├── db_interaction.py
│   ├── failures.py
│   ├── integridos.sql
│   ├── server_crypto_utils.py
│   ├── server_functions.py
│   ├── server.py
│   └── logs/
│
├── Makefile
├── requirements.txt
├── .gitignore
└── README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •