Volver a Proyectos

Minichat Flask

Chat multiusuario en tiempo real con Python, Flask y API REST

Descripción General

Aplicación de chat multiusuario desarrollada con Python y Flask. Permite a varios usuarios enviarse mensajes en tiempo real identificándose con un nombre de usuario, con registro de la hora exacta de cada mensaje.

La actualización en tiempo real se consigue mediante polling JavaScript: el navegador consulta el endpoint /mensajes cada segundo usando la Fetch API, sin necesidad de WebSockets ni librerías externas. El diseño es completamente responsivo con tarjetas de mensaje modernas.

Tecnologías Utilizadas


Python 3

Flask

Jinja2

Fetch API

REST API

Características Clave

  • Tiempo real sin WebSockets: Polling automático cada 1 segundo con fetch()
  • Identificación de usuario: Cada mensaje incluye nombre de usuario
  • Timestamps: Hora exacta (HH:MM:SS) registrada en el servidor
  • API REST: Endpoint /mensajes devuelve historial completo en JSON
  • Patrón PRG: Post-Redirect-Get evita reenvíos accidentales del formulario
  • Validación: No permite mensajes ni nombres de usuario vacíos
  • Auto-scroll: La vista se desplaza automáticamente al mensaje más reciente
  • Estado vacío: Mensaje amigable cuando no hay mensajes

Endpoints de la API

MétodoRutaDescripción
GET / POST/Página principal y envío de mensajes
GET/mensajesDevuelve todos los mensajes en JSON

Progresión del Proyecto

  • 001 — Miniflask: Servidor HTTP mínimo con Flask ("Hola mundo")
  • 002 — Contador: Estado global — contador que se incrementa por request
  • 003 — Guardo mensajes: Lista de mensajes en memoria global
  • 004 — Chat: Chat básico con formulario y template Jinja2
  • 005 — Superchat: Versión final con usuario, timestamp, API REST y polling JS

Mi Rol

Desarrollador Full-Stack — Backend Python y Frontend JavaScript

Diseñé e implementé el servidor Flask, la API REST y el frontend con polling asíncrono. El proyecto arranca desde los fundamentos de Flask hasta una aplicación de chat funcional en tiempo real, sin dependencias externas más allá de Flask.

Estado

Estado: ⚡ Proyecto de Aprendizaje

Proyecto académico que demuestra el desarrollo de un servidor web con Python y Flask, incluyendo comunicación cliente-servidor en tiempo real mediante API REST.