VoluntApp
VoluntApp es un proyecto educativo desarrollado con Python (Flask) que conecta a usuarios con oportunidades de voluntariado en Madrid. Ofrece registro e inicio de sesión para voluntarios, organizaciones y administradores, un mapa interactivo, inscripción a actividades, gestión de horas y generación de reportes, además de un panel de administración.
Install / Use
/learn @marichu-kt/VoluntAppREADME
VoluntApp - Plataforma de Voluntariado Social 🌍
<div align="center"> <img src="images/voluntapp-banner.png" alt="VoluntApp Banner" width="60%" /> </div>¡Bienvenido/a a VoluntApp! Este proyecto es un prototipo educativo que integra varias tecnologías para demostrar cómo crear una aplicación web (y base para móvil) que conecte a personas con actividades de voluntariado y responsabilidad social.
✨ Características Principales
- Registro e Inicio de Sesión (Flask-Login y WTForms)
- Soporta distintos roles: voluntario, organización y administrador.
- Mapa Interactivo (Folium)
- Centrado en Madrid, con marcadores de organizaciones reales (Banco de Alimentos, Cruz Roja).
- Gestión de Actividades
- Crear y listar oportunidades de voluntariado.
- Inscribirse y registrar la participación.
- Registro de Horas
- Cada usuario voluntario va sumando sus horas.
- Reportes en PDF (ReportLab)
- Permite exportar fácilmente el listado de actividades y horas.
⚙️ Tecnologías y Librerías
- Python (3.x)
- Flask (microframework web)
- Flask-Login (gestión de sesiones de usuario)
- Flask-WTF y WTForms (creación y validación de formularios)
- SQLite (base de datos local)
- Folium (integración de mapas interactivos)
- ReportLab (generación de reportes en PDF)
- Werkzeug Security (hashing de contraseñas)
🏗️ Estructura del Código
En un solo archivo VoluntApp.py para fines didácticos:
- Modelos (User, Organizacion, Actividad) con SQLAlchemy.
- Formularios WTForms (RegisterForm, LoginForm, ActividadForm).
- Rutas de Flask para registro, login, mapa, actividades, PDF, etc.
- Plantillas incrustadas mediante
render_template_string(idealmente se usarían archivos HTML en/templates). - Inicialización de la base de datos y creación de usuarios y organizaciones de ejemplo.
🚀 Ejecución
- Instalar dependencias:
pip install flask flask_sqlalchemy flask_login flask_wtf wtforms folium reportlab - Iniciar la aplicación:
python VoluntApp.py
