Aisiplan
Plataforma para la gestiĂłn de actividades de ocio y tiempo libre
Plataforma fullStack que centraliza actividades de ocio, permitiendo a usuarios descubrir e inscribirse, y a empresas gestionar sus publicaciones desde un panel.
El reto
No existĂa una plataforma que unificara toda la oferta de ocio local. Las alternativas (Eventbrite, Meetup, Airbnb Experiences, Fever) están fragmentadas: unas enfocadas al turismo, otras solo a mĂşsica, y ninguna facilita el descubrimiento de actividades pequeñas o gratuitas de empresas locales. El reto era construir una web que centralizara toda la oferta y permitiera a pequeñas empresas publicar sin barreras.
Decisiones UX/UI
Identidad visual propia con logotipo y paleta naranja que transmite energĂa. Header fijo con navegaciĂłn adaptativa al iniciar sesiĂłn. Página de inicio con buscador, actividades destacadas, categorĂas visuales y carrusel de empresas. Formularios con validaciĂłn en tiempo real y mensajes claros. Accesibilidad: contraste suficiente, tipografĂa legible y etiquetas semánticas.
Arquitectura del CĂłdigo
Frontend con React + Vite + TypeScript + Scss. Backend con Node.js + Express + TypeORM sobre MySQL. API RESTful con autenticación JWT, subida de archivos con Multer y middlewares de validación. Base de datos relacional con 5 tablas, claves foráneas y restricciones de integridad.
Problemas que Resuelve
Centraliza la oferta de ocio en un Ăşnico acceso, eliminando bĂşsquedas dispersas. Pequeñas empresas locales publican sin coste. Usuarios buscan por localizaciĂłn y categorĂas, se inscriben directamente. Empresas gestionan publicaciones e inscripciones desde un panel.
Funcionalidades clave
• Sistema de autenticación con JWT y roles (empresa/usuario)
• CRUD completo de actividades con formularios dinámicos
• Panel de perfil para empresas con gestión de actividades e inscripciones
• Buscador con filtros por texto, localizaciĂłn y categorĂas
• Subida de imágenes y vĂdeos con Multer
• Arquitectura modular escalable (backend separado del frontend)
• Base de datos relacional con 5 tablas y relaciones normalizadas
• Seeders para carga inicial de datos
Mi Rol
Desarrollo fullStack completo: investigación de mercado, diseño de identidad visual y prototipos en Figma, base de datos MySQL, backend con Node.js + Express + TypeORM, frontend con React + Vite + TypeScript + Scss, autenticación JWT, pruebas con Postman, despliegue en Vercel y documentación técnica.
Detalles técnicos
• Frontend: React + Vite + TypeScript + Scss. Componentes reutilizables, React Router para navegación, Context API para estado de autenticación
• Backend: Node.js + Express + TypeORM. Arquitectura MVC con controladores, entidades, rutas y middlewares
• Base de datos: MySQL relacional con 5 tablas (Category, UserData, Company, Activity, Registration), claves foráneas e Ăndices
• Autenticación: JWT con middlewares de protección de rutas y contexto de sesión en frontend
• API REST: Endpoints completos para usuarios, empresas, actividades, categorĂas e inscripciones
• Subida de archivos: Multer para imágenes y vĂdeos, almacenados en carpeta pĂşblica
• Validación: Postman para pruebas de endpoints y middlewares de validación server-side
• MetodologĂa: Kanban con Trello, documentaciĂłn en Notion, control de versiones con Git + GitHub
Infraestructura
• Frontend: Vercel
• Backend: Render
• Base de datos: Aiven (MySQL)
• Imágenes: Cloudinary