docs: actualizar README con T3 y T4 como implementadas

Mueve T3 (Sockets) y T4 (Servicios en Red) de la hoja de ruta
a la sección de funcionalidades implementadas, detallando chat TCP,
descubrimiento UDP, cliente IMAP/SMTP y radio online.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Olivia Mestre Llobell 2026-02-27 15:41:36 +01:00
parent 2d27cda79f
commit 2dac98d6c1
1 changed files with 48 additions and 64 deletions

View File

@ -1,25 +1,28 @@
# 🚀 ProyectoGlobal: Aplicaciones Multi-Funcionales # ProyectoGlobal: Aplicaciones Multi-Funcionales
## Indice ## ## Indice
- [📄 Descripción del Proyecto](#-descripción-del-proyecto)
- [🛠️ Requisitos e Instalación](#-requisitos-e-instalación) - [Descripción del Proyecto](#descripción-del-proyecto)
- [✅ Funcionalidades Implementadas (Evaluaciones Anteriores)](#-funcionalidades-implementadas-evaluaciones-anteriores) - [Requisitos e Instalación](#requisitos-e-instalación)
- [Funcionalidades Implementadas](#funcionalidades-implementadas)
- [T1. Multiprocesos](#t1-multiprocesos) - [T1. Multiprocesos](#t1-multiprocesos)
- [T2. Multihilos (Concurrencia)](#t2-multihilos-concurrencia) - [T2. Multihilos (Concurrencia)](#t2-multihilos-concurrencia)
- [📅 Hoja de Ruta (Próximas Evaluaciones)](#-hoja-de-ruta-próximas-evaluaciones)
- [T3. Sockets (Comunicación de Red Básica)](#t3-sockets-comunicación-de-red-básica) - [T3. Sockets (Comunicación de Red Básica)](#t3-sockets-comunicación-de-red-básica)
- [T4. Servicios en Red (Aplicaciones Avanzadas)](#t4-servicios-en-red-aplicaciones-avanzadas) - [T4. Servicios en Red (Aplicaciones Avanzadas)](#t4-servicios-en-red-aplicaciones-avanzadas)
- [Hoja de Ruta (Próximas Evaluaciones)](#hoja-de-ruta-próximas-evaluaciones)
- [T5. Seguridad](#t5-seguridad) - [T5. Seguridad](#t5-seguridad)
## 📄 Descripción del Proyecto
**ProyectoGlobal** es una aplicación de escritorio desarrollada en Python que integra diversas funcionalidades clave relacionadas con el **multiproceso**, la **concurrencia (multihilo)** y la **interacción de sistemas (sockets/redes)**.
La aplicación sirve como un panel de control que permite al usuario gestionar procesos, visualizar recursos del sistema, ejecutar tareas de automatización, y acceder a mini-juegos y herramientas de scraping/reproducción multimedia.
--- ---
## 🛠️ Requisitos e Instalación ## Descripción del Proyecto
**ProyectoGlobal** es una aplicación de escritorio desarrollada en Python que integra diversas funcionalidades relacionadas con el **multiproceso**, la **concurrencia (multihilo)**, la **comunicación en red mediante sockets** y los **servicios de red**.
La aplicación sirve como un panel de control que permite al usuario gestionar procesos, visualizar recursos del sistema, ejecutar tareas de automatización, chatear en red local, gestionar correos electrónicos, y acceder a mini-juegos, scraping y reproducción multimedia.
---
## Requisitos e Instalación
Necesitas tener **Python 3** y **VLC** instalados en el sistema. Necesitas tener **Python 3** y **VLC** instalados en el sistema.
@ -28,14 +31,14 @@ Necesitas tener **Python 3** y **VLC** instalados en el sistema.
sudo apt install python3-tk vlc sudo apt install python3-tk vlc
``` ```
### 🔽 Clonar el repositorio ### Clonar el repositorio
```bash ```bash
git clone https://github.com/BYolivia/PSP-proyecto-global.git git clone https://github.com/BYolivia/PSP-proyecto-global.git
cd PSP-proyecto-global cd PSP-proyecto-global
``` ```
### 📦 Crear el entorno virtual e instalar dependencias ### Crear el entorno virtual e instalar dependencias
```bash ```bash
python3 -m venv venv python3 -m venv venv
@ -43,13 +46,13 @@ source venv/bin/activate
pip install -r requirements.txt pip install -r requirements.txt
``` ```
### ▶️ Ejecutar la aplicación ### Ejecutar la aplicación
```bash ```bash
python -m ProyectoGlobal python -m ProyectoGlobal
``` ```
### ⏹️ Salir del entorno virtual ### Salir del entorno virtual
```bash ```bash
deactivate deactivate
@ -58,14 +61,13 @@ deactivate
> [!NOTE] > [!NOTE]
> La próxima vez que abras el proyecto solo necesitas activar el entorno (`source venv/bin/activate`) y ejecutarlo. > La próxima vez que abras el proyecto solo necesitas activar el entorno (`source venv/bin/activate`) y ejecutarlo.
--- ---
## Funcionalidades Implementadas (Evaluaciones Anteriores) ## Funcionalidades Implementadas
### T1. Multiprocesos ### T1. Multiprocesos
[Video de la demostracion](https://youtu.be/37-wJIXNZAg) [Video de la demostración](https://youtu.be/37-wJIXNZAg)
| **Estado** | **Característica** | | **Estado** | **Característica** |
|------------|------------------------------------------------------------------------------------------------------------------| |------------|------------------------------------------------------------------------------------------------------------------|
@ -87,43 +89,30 @@ deactivate
| **Done** | **Mini-juego** (Carrera de camellos / Buscaminas) aplicando resolución de sincronización (para evitar interbloqueos). | | **Done** | **Mini-juego** (Carrera de camellos / Buscaminas) aplicando resolución de sincronización (para evitar interbloqueos). |
| **Done** | **Música de fondo** (reproducción de mp3 o midi) utilizando `python-vlc`. | | **Done** | **Música de fondo** (reproducción de mp3 o midi) utilizando `python-vlc`. |
---
## 📅 Hoja de Ruta (Próximas Evaluaciones)
### T3. Sockets (Comunicación de Red Básica) ### T3. Sockets (Comunicación de Red Básica)
1. Implementación de un **Chat** simple. | **Estado** | **Característica** |
|------------|-------------------------------------------------------------------------------------------------------------------------------------|
2. Desarrollo de un **Servidor TCP** básico. | **Done** | **Chat TCP** multijugador: el servidor acepta múltiples clientes simultáneos y retransmite los mensajes a todos (broadcast interno). |
| **Done** | **Servidor TCP** con autenticación mediante clave generada aleatoriamente (puerto + contraseña alfabética). |
3. Desarrollo de un **Servidor UDP** básico. | **Done** | **Descubrimiento automático por UDP**: el servidor emite broadcasts UDP para que los clientes encuentren la sesión sin configuración manual. |
| **Done** | **Gestión de streams**: recepción y envío de datos en bloques vía `recv`/`sendall` en hilos dedicados por cliente. |
4. Manejo de **Streams** de datos. | **Done** | **Interfaz gráfica del chat** con selector de rol (servidor / cliente), lista de servidores descubiertos y campo de mensajes. |
5. Uso de **Asyncio** para operaciones concurrentes en red.
### T4. Servicios en Red (Aplicaciones Avanzadas) ### T4. Servicios en Red (Aplicaciones Avanzadas)
1. **Cliente de Correo Electrónico** (usando POP3 y/o IMAP). | **Estado** | **Característica** |
|------------|----------------------------------------------------------------------------------------------------------------------------|
| **Done** | **Cliente de Correo IMAP** con lectura de bandeja de entrada (últimos 100 correos), soporte de flags de leído/no leído. |
| **Done** | **Cliente SMTP** para envío de correos, compatible con los modos **SSL**, **STARTTLS** y sin cifrado. |
| **Done** | Soporte completo de **SSL/TLS** en las conexiones IMAP y SMTP. |
| **Done** | **Persistencia de credenciales** en archivo `.env` (servidor, puertos IMAP/SMTP, usuario, contraseña y modo de seguridad). |
| **Done** | **Interfaz estilo Gmail**: lista de correos, vista de detalle, botón de respuesta y navegación hacia atrás. |
| **Done** | **Servidor de radio online** con reproducción de streams mediante `python-vlc`. |
2. Implementación del protocolo **SMTP**. ---
3. **Cliente FTP** para transferencia de ficheros.
4. **Cliente HTTP** para peticiones web.
5. **Servidor de música / radio online**.
6. Juegos multijugador: **Adivina número** (cliente único/múltiple) y **Piedra, Papel o Tijera**.
7. Consumo de una **API REST** externa.
8. Implementación de **Servicios API REST** propios.
9. Desarrollo de **Microservicios**.
## Hoja de Ruta (Próximas Evaluaciones)
### T5. Seguridad ### T5. Seguridad
@ -142,8 +131,3 @@ deactivate
5. Implementación de **Firma Digital**. 5. Implementación de **Firma Digital**.
6. Configuración y uso de **SSL/TLS**. 6. Configuración y uso de **SSL/TLS**.