| Estado de Build | Cobertura de Tests |
|---|---|
- Descripción
- Tecnologías Utilizadas
- Funcionalidades Principales
- Estructura del Proyecto
- Endpoints de la API
- Dockerización
- Capturas de pantalla
- Contribución
- Licencia
FeelBack es una aplicación web que combina inteligencia artificial y un diseño intuitivo para ofrecer análisis de sentimientos en tiempo real. Los usuarios pueden interactuar con un modelo de aprendizaje automático extraido de HuggingFace a través de una interfaz tipo chat, obteniendo clasificaciones emocionales como positiva, negativa o neutral. Además, la aplicación permite a los usuarios gestionar su historial de análisis y explorar sus resultados de manera organizada.
- Lenguaje de programación: Python
- Framework Backend: Flask
- Modelo de ML: BERT Multilingüe (nlptown/bert-base-multilingual-uncased-sentiment) de HuggingFace
- Librería de inferencia: Transformers (HuggingFace)
- Base de datos: PostgreSQL
- Contenerización: Docker y Docker Compose
- Gestión de Usuarios
- Sistema de registro e inicio de sesión para proteger los datos personales de cada usuario.
- Cada usuario tiene acceso a su historial de análisis.
- Interacción Conversacional
- Los usuarios pueden escribir comentarios en una interfaz tipo chat y recibir análisis de sentimientos en tiempo real.
- El modelo clasifica el texto en positivo, negativo o neutral.
- Historial Personalizado
- Los usuarios pueden consultar sus análisis previos, filtrarlos por fecha o tipo de sentimiento, y exportarlos en formato CSV.
FeelBack/
├── web_app/ # Aplicación web (Frontend + API Backend)
│ ├── app/ # Código fuente de la aplicación Flask
│ │ ├── api/ # API RESTful: rutas para autenticación, chat y usuario
│ │ ├── auth/ # Módulo de autenticación (formularios, rutas web)
│ │ ├── main/ # Módulo principal (chat, historial, vistas web)
│ │ ├── models/ # Modelos de datos (ORM)
│ │ ├── static/ # Archivos estáticos (CSS, JS, imágenes)
│ │ ├── templates/ # Plantillas HTML (Jinja2)
│ │ ├── utils/ # Utilidades compartidas
│ │ ├── __init__.py # Inicialización y configuración de la aplicación Flask
│ │ └── config.py # Configuración general de la aplicación
│ ├── Dockerfile # Contenedor para la aplicación web
│ ├── migrations/ # Migraciones de base de datos
│ ├── tests/ # Pruebas unitarias de la API y lógica
│ ├── requirements.txt # Dependencias de la aplicación web
│ ├── run.py # Punto de entrada para ejecutar la aplicación
│ └── setup.py # Configuración del paquete
├── img/ # Imágenes para documentación
├── docker-compose.yml # Orquestación de servicios
└── README.md # Documentación principal del proyectoA continuación se listan las rutas principales de la API RESTful expuesta por FeelBack agrupadas por funcionalidad:
-
POST
/register: Registra un nuevo usuario.
Body: username, email, password
Respuesta: Mensaje de éxito o error. -
POST
/login: Inicia sesión y retorna un token JWT.
Body: username, password
Respuesta: token, user_id. -
POST
/verify-token: Verifica la validez de un token JWT.
Body: token
Respuesta: Mensaje de validez y user_id.
- POST
/get-sentiment: Analiza el sentimiento de un mensaje de texto.
Body: message
Respuesta: model_response (texto), id_sentiment (código de sentimiento).
-
POST
/save-message: Guarda un mensaje analizado en el historial del usuario.
Body: user_id, text, id_sentiment, liked
Respuesta: Mensaje de éxito y id_message. -
POST
/delete-message: Elimina un mensaje del historial del usuario.
Body: user_id, message_id
Respuesta: Mensaje de éxito. -
GET
/get-message: Obtiene un mensaje específico del historial.
Body: user_id, message_id
Respuesta: Detalles del mensaje. -
GET
/get-messages: Obtiene todos los mensajes del usuario.
Body: user_id
Respuesta: Lista de mensajes. -
GET
/get-stats: Obtiene estadísticas de uso y sentimientos del usuario.
Body: user_id
Respuesta: Conteo de positivos, negativos, neutrales, likes y dislikes.
Estas rutas permiten la integración con sistemas de monitoreo y dashboards de salud.
- Todas las rutas protegidas requieren autenticación mediante token JWT en el header
Authorization: Bearer <token>.
FeelBack está completamente contenerizado para facilitar su despliegue y escalabilidad. Los servicios están orquestados mediante Docker Compose:
# Construcción de los contenedores
docker-compose build
# Ejecución de los servicios
docker-compose upPantalla de bienvenida con logo, mensaje introductorio y acceso rápido a registro o inicio de sesión. Diseño limpio, modular y responsivo.
Formulario sencillo para autenticación de usuarios, con validación y mensajes de error claros.
Formulario para crear una cuenta nueva, validación en tiempo real y confirmación de términos.
Interfaz tipo chat para analizar sentimientos en tiempo real. Mensajes diferenciados y feedback visual.
Historial de análisis con estadísticas, filtros, exportación a CSV y visualización clara de cada mensaje.
Página que se muestra en casos de presentar errores en la aplicación.
¡Las contribuciones son bienvenidas! Por favor, abre un issue o pull request siguiendo las buenas prácticas de la comunidad.
Este proyecto está bajo la Licencia MIT.








