diff --git a/Readme.md b/Readme.md index a5edc7c..d54dcae 100644 --- a/Readme.md +++ b/Readme.md @@ -1,25 +1,28 @@ -# 🚀 ProyectoGlobal: Aplicaciones Multi-Funcionales +# ProyectoGlobal: Aplicaciones Multi-Funcionales -## Indice ## -- [📄 Descripción del Proyecto](#-descripción-del-proyecto) -- [🛠️ Requisitos e Instalación](#-requisitos-e-instalación) -- [✅ Funcionalidades Implementadas (Evaluaciones Anteriores)](#-funcionalidades-implementadas-evaluaciones-anteriores) +## Indice + +- [Descripción del Proyecto](#descripción-del-proyecto) +- [Requisitos e Instalación](#requisitos-e-instalación) +- [Funcionalidades Implementadas](#funcionalidades-implementadas) - [T1. Multiprocesos](#t1-multiprocesos) - [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) - [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) -## 📄 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. @@ -28,14 +31,14 @@ Necesitas tener **Python 3** y **VLC** instalados en el sistema. sudo apt install python3-tk vlc ``` -### 🔽 Clonar el repositorio +### Clonar el repositorio ```bash git clone https://github.com/BYolivia/PSP-proyecto-global.git cd PSP-proyecto-global ``` -### 📦 Crear el entorno virtual e instalar dependencias +### Crear el entorno virtual e instalar dependencias ```bash python3 -m venv venv @@ -43,13 +46,13 @@ source venv/bin/activate pip install -r requirements.txt ``` -### ▶️ Ejecutar la aplicación +### Ejecutar la aplicación ```bash python -m ProyectoGlobal ``` -### ⏹️ Salir del entorno virtual +### Salir del entorno virtual ```bash deactivate @@ -58,14 +61,13 @@ deactivate > [!NOTE] > 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 -[Video de la demostracion](https://youtu.be/37-wJIXNZAg) +[Video de la demostración](https://youtu.be/37-wJIXNZAg) | **Estado** | **Característica** | |------------|------------------------------------------------------------------------------------------------------------------| @@ -87,63 +89,45 @@ deactivate | **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`. | ---- - -## 📅 Hoja de Ruta (Próximas Evaluaciones) - ### T3. Sockets (Comunicación de Red Básica) -1. Implementación de un **Chat** simple. - -2. Desarrollo de un **Servidor TCP** básico. - -3. Desarrollo de un **Servidor UDP** básico. - -4. Manejo de **Streams** de datos. - -5. Uso de **Asyncio** para operaciones concurrentes en red. - +| **Estado** | **Característica** | +|------------|-------------------------------------------------------------------------------------------------------------------------------------| +| **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). | +| **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. | +| **Done** | **Interfaz gráfica del chat** con selector de rol (servidor / cliente), lista de servidores descubiertos y campo de mensajes. | ### T4. Servicios en Red (Aplicaciones Avanzadas) -1. **Cliente de Correo Electrónico** (usando POP3 y/o IMAP). - -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**. - +| **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`. | + +--- + +## Hoja de Ruta (Próximas Evaluaciones) ### T5. Seguridad 1. Manejo de **Autenticación y Roles** de usuario. - + 2. Implementación de **Logs** de actividad. - + 3. Cálculo y verificación de **HASH** aplicado a ficheros. - + 4. Técnicas de **Cifrado**. - + - Algoritmos **DES** y **AES**. - + - Cifrado Simétrico y **RSA** (Cifrado Asimétrico). - + 5. Implementación de **Firma Digital**. - + 6. Configuración y uso de **SSL/TLS**. - - - - -