A full-stack Final Degree Project (TFG) that turns personal text into understandable trends, with care and responsible AI at its core.
Django · TensorFlow · PyTorch · BERT · Hugging Face
6 ML models · 2 chatbot modes · 1 end-to-end web application
English · Español · Getting started · Empezar
SocialMindScan is a full-stack Django application created for a Final Degree Project. It gives people a private space to write or upload personal text, explore AI-generated signals over time, and talk to a supportive chatbot that responds with recent context in mind.
It brings together product design, backend development, data persistence, NLP, neural-network inference, external AI integration, and responsible-technology thinking in one usable project.
Important
SocialMindScan is an educational and research project. It does not provide medical diagnoses, crisis intervention, or a replacement for professional care.
| 🧠 Applied AI | 💬 Human-centred product | ⚙️ Full-stack engineering |
|---|---|---|
| Runs six trained CNN and GRU models using Word2Vec and BERT representations. | Makes results easier to follow through post history, labels, trend views, and a contextual support chatbot. | Includes authentication, database models, asynchronous endpoints, configurable AI models, local/remote inference, and a Django UI. |
- ✍️ Write an entry or upload a
.txtfile. - 📊 Analyse each entry for depression-related and suicide-risk-related signals, then follow the evolution over time.
- 🧩 Choose the model used for each task:
- Depression: Word2Vec + CNN, Word2Vec + GRU, or BERT + GRU.
- Suicide-risk signals: BERT + CNN, Word2Vec + GRU, or BERT + GRU.
- 💭 Chat with a context-aware support assistant in remote or local mode.
- 🔐 Create an account, manage a profile, and remove the account when needed.
| Layer | Tools used |
|---|---|
| Web application | Python, Django 5, HTML templates, JavaScript |
| Data | SQLite, Django ORM |
| Machine learning | TensorFlow/Keras, PyTorch, Transformers |
| NLP | Word2Vec, BERT |
| Generative AI | Hugging Face Inference Providers through an OpenAI-compatible client; optional Qwen/Qwen2.5-0.5B-Instruct local model |
Your text
↓
Cleaning + Word2Vec / BERT embeddings
↓
Selected CNN or GRU model
↓
Scores, labels, history, and progress views
↓
Optional context-aware support chatbot
You will need: Python 3.10+, Git, and an Internet connection the first time external model resources are downloaded. Keep around 4 GB of free disk space; the local chatbot may need additional RAM and storage.
git clone https://github.com/norapfr/SocialMind_APP.git
cd SocialMind_APP
# Create and activate a virtual environment
python -m venv .venv
# macOS / Linux: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txtTo enable the remote chatbot or download the optional local chatbot model, create portal/.env:
HF_API_KEY=your_hugging_face_tokenThen run the application:
cd portal
python manage.py migrate
python manage.py runserverOpen http://127.0.0.1:8000 in your browser. The analysis models do not require this token, although their external resources may still download on first use.
SocialMind_APP/
├── portal/
│ ├── manage.py # Django entry point
│ ├── portal/ # Settings and URL routing
│ ├── socialApp/ # App logic, templates, forms, and data models
│ │ ├── chatbot.py # Remote and local chatbot modes
│ │ └── utils/ # Text processing, embeddings, ML inference, Keras models
│ └── static/ # Visual assets
└── requirements.txt
- Model scores are probabilistic estimates. They can be inaccurate or biased and are not suitable as the sole basis for decisions about a person's safety or care.
- The system analyses text only; it has no clinical history or sufficient context to diagnose anyone.
- If someone may be in immediate danger, contact local emergency services or an appropriate crisis support service.
- This repository is configured for local development. A production deployment requires a secure
SECRET_KEY,DEBUG = False, suitableALLOWED_HOSTS, protected secrets, and production-grade database and security settings.
SocialMindScan es una aplicación full-stack en Django creada para un Trabajo de Fin de Grado. Ofrece un espacio para redactar o subir texto personal, explorar señales generadas por IA a lo largo del tiempo y conversar con un chatbot de apoyo que tiene en cuenta el contexto reciente.
El proyecto reúne diseño de producto, desarrollo backend, persistencia de datos, PLN, inferencia con redes neuronales, integración de IA externa y una visión responsable de la tecnología en una aplicación funcional.
Important
SocialMindScan es un proyecto educativo y de investigación. No proporciona diagnósticos médicos, intervención en crisis ni sustituye la atención profesional.
| 🧠 IA aplicada | 💬 Producto centrado en las personas | ⚙️ Ingeniería full-stack |
|---|---|---|
| Ejecuta seis modelos CNN y GRU entrenados con representaciones Word2Vec y BERT. | Presenta los resultados mediante historial, etiquetas, evolución temporal y un chatbot de apoyo contextual. | Incluye autenticación, modelos de datos, endpoints asíncronos, modelos de IA configurables, inferencia local/remota e interfaz Django. |
- ✍️ Escribir una entrada o subir un archivo
.txt. - 📊 Analizar cada entrada para obtener señales relacionadas con depresión y riesgo suicida, y seguir su evolución.
- 🧩 Seleccionar el modelo de cada tarea:
- Depresión: Word2Vec + CNN, Word2Vec + GRU o BERT + GRU.
- Señales de riesgo suicida: BERT + CNN, Word2Vec + GRU o BERT + GRU.
- 💭 Conversar con un asistente de apoyo contextual en modo remoto o local.
- 🔐 Crear una cuenta, gestionar el perfil y eliminar la cuenta cuando sea necesario.
| Capa | Tecnologías |
|---|---|
| Aplicación web | Python, Django 5, plantillas HTML, JavaScript |
| Datos | SQLite, ORM de Django |
| Machine learning | TensorFlow/Keras, PyTorch, Transformers |
| PLN | Word2Vec, BERT |
| IA generativa | Proveedores de inferencia de Hugging Face mediante un cliente compatible con OpenAI; modelo local opcional Qwen/Qwen2.5-0.5B-Instruct |
Tu texto
↓
Limpieza + embeddings Word2Vec / BERT
↓
Modelo CNN o GRU seleccionado
↓
Puntuaciones, etiquetas, historial y evolución
↓
Chatbot de apoyo contextual opcional
Necesitas: Python 3.10 o superior, Git y conexión a Internet la primera vez que se descarguen recursos externos de los modelos. Reserva unos 4 GB de espacio libre; el chatbot local puede requerir RAM y espacio adicional.
git clone https://github.com/norapfr/SocialMind_APP.git
cd SocialMind_APP
# Crea y activa un entorno virtual
python -m venv .venv
# macOS / Linux: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txtPara utilizar el chatbot remoto o descargar el modelo local opcional, crea portal/.env:
HF_API_KEY=tu_token_de_hugging_faceDespués, inicia la aplicación:
cd portal
python manage.py migrate
python manage.py runserverAbre http://127.0.0.1:8000 en el navegador. Los modelos de análisis no requieren el token, aunque sus recursos externos podrían descargarse durante el primer uso.
SocialMind_APP/
├── portal/
│ ├── manage.py # Punto de entrada de Django
│ ├── portal/ # Configuración y rutas
│ ├── socialApp/ # Lógica, plantillas, formularios y modelos de datos
│ │ ├── chatbot.py # Modos remoto y local del chatbot
│ │ └── utils/ # Procesado de texto, embeddings, inferencia y modelos Keras
│ └── static/ # Recursos visuales
└── requirements.txt
- Las puntuaciones de los modelos son estimaciones probabilísticas. Pueden ser inexactas o estar sesgadas, y no deben ser la única base para tomar decisiones sobre la seguridad o atención de una persona.
- El sistema analiza solo texto; no dispone de historial clínico ni del contexto suficiente para diagnosticar a nadie.
- Si una persona puede estar en peligro inmediato, contacta con los servicios de emergencia locales o con un recurso de apoyo en crisis adecuado.
- El repositorio está configurado para desarrollo local. Un despliegue en producción requiere una
SECRET_KEYsegura,DEBUG = False,ALLOWED_HOSTSadecuados, secretos protegidos y una base de datos y configuración de seguridad para producción.