Trillage
Trillage es una innovadora red comunitaria diseñada para fortalecer los lazos entre empresas locales, escuelas y partidarios, creando un ciclo de donaciones poderoso y colaborativo. Al suscribirte a Trillage, no solo apoyas a tu escuela local, sino que también obtienes acceso a ofertas exclusivas de empresas comprometidas con el impacto positivo en la comunidad. El nombre "Trillage" encapsula sus tres pilares fundamentales: empresas locales, escuelas/PTA y miembros de la comunidad.
Nuestro Trabajo con Trillage
Hemos trabajado estrechamente con Trillage para construir esta plataforma desde cero, uniendo a esos tres pilares en un solo ecosistema funcional. Nuestro trabajo incluyó:
- Desarrollo de la Plataforma: Construimos paneles y funcionalidades personalizadas para cada tipo de usuario: empresas, escuelas/PTA y miembros de la comunidad.
- Infraestructura y Base de Datos usando Google Cloud: Diseñamos e implementamos la infraestructura y la base de datos necesarias para operar la plataforma de manera eficiente dentro de Google Cloud Platform.
- Integración de Stripe: Implementamos Stripe para manejar suscripciones y donaciones, configurando diversos webhooks para mantener actualizado el estado de cada suscripción.
- Integración con Sendgrid: Utilizamos Sendgrid para el envío de correos electrónicos personalizables, permitiendo a los clientes enviar correos electrónicos específicos, como mensajes de bienvenida post-registro.
Principales Funcionalidades
En el proyecto para Trillage, desarrollamos desde cero una amplia gama de funcionalidades para sus usuarios:
- Web de promoción y venta: Permite a los administradores gestionar contenido y promocionar la plataforma de una forma facil utilizando Wordpress. En el mismo podremos encontrar información importante sobre las diferentes funcionalidades que Trillage ofrece a sus usuarios.
- Registro para Negocios: Permite a los negocios ofrecer ofertas a la comunidad.
- Donaciones: Tanto los negocios como los miembros de la comunidad pueden realizar donaciones a escuelas específicas en cualquier momento.
- Suscripciones: Los miembros de la comunidad pueden suscribirse para apoyar a las escuelas y obtener descuentos en negocios locales. Las suscripciones pueden ser mensuales o anuales, con la opción de cancelarlas en cualquier momento.
- Campañas de Recaudación de Fondos: Organizadas por las PTA, estas campañas permiten recolectar fondos para actividades específicas.
- Búsqueda de Ofertas: Los miembros de la comunidad pueden buscar ofertas por distancia y categorías.
- Sistema de Notificaciones: Los administradores de las PTA pueden comunicarse con los miembros y negocios a través de notificaciones.
- Administración de Superadministradores: Gestiona usuarios, organizaciones y negocios.
- Seguimiento de Donaciones: Tanto los miembros de la comunidad como los negocios pueden seguir en tiempo real el dinero donado a las escuelas.
- Campañas Específicas: Las PTA pueden crear campañas específicas, permitiendo que los alumnos contribuyan mediante suscripciones y obtengan descuentos en negocios locales.
Detalles de Implementación
La funcionalidad de Donaciones se facilita a través de Stripe, que maneja las transacciones financieras de manera segura y eficiente. Integramos la API de Payment Intents de Stripe para gestionar donaciones únicas y las Suscripciones de Stripe para manejar las donaciones recurrentes de los miembros de la comunidad. Esta configuración asegura que todas las transacciones financieras se procesen de manera fluida y segura, proporcionando transparencia y fiabilidad tanto para los donantes como para los destinatarios.
Para el Sistema de Notificaciones, integramos Sendgrid para gestionar las comunicaciones por correo electrónico. Esto permite a los administradores de las PTA enviar notificaciones y actualizaciones a los miembros y negocios directamente desde la plataforma. La robusta API de Sendgrid permite plantillas de correo electrónico personalizables, asegurando que la comunicación se mantenga personal y relevante. Por ejemplo, después de que un nuevo miembro se registra, se envía un correo electrónico de bienvenida automatizado, que puede ser fácilmente personalizado por los administradores de la plataforma a través de la interfaz de Sendgrid.
El módulo de Gestión de Super Administradores se desarrolló utilizando Craftable y Laravel. Esta poderosa combinación permite a los super administradores supervisar y gestionar toda la plataforma. A través de este módulo, los super administradores pueden ver y gestionar todos los usuarios, contenido, transacciones e informes. Este sistema de gestión integral asegura que la plataforma opere de manera fluida y eficiente, con todas las actividades siendo monitoreadas de cerca. Los super administradores pueden acceder a informes detallados y análisis para seguir el rendimiento y el compromiso en la plataforma, permitiéndoles tomar decisiones informadas y mantener la integridad de la plataforma.
Otra característica destacada es la capacidad de los administradores de PTA para crear campañas de recaudación de fondos. Esto permite a las PTA lanzar campañas de donación dirigidas para propósitos específicos, como eventos escolares o nuevos equipos. Las campañas pueden personalizarse con objetivos y plazos específicos, y los donantes pueden contribuir directamente a través de la plataforma. Esta característica aprovecha el poder del apoyo comunitario para satisfacer las necesidades específicas de las escuelas de manera eficiente. Desarrollamos desde cero un componente para Next.js para cubrir el flujo completo de las campañas de donaciones, desde paneles de creación hasta reportes y monitoreo de cada campaña.
Los negocios locales también pueden crear cupones de descuento para la comunidad. Esta funcionalidad permite a los negocios ofrecer ofertas y descuentos exclusivos a los miembros de la comunidad que apoyan a las escuelas locales a través de donaciones o suscripciones. El sistema de cupones está integrado perfectamente en la plataforma, permitiendo a los negocios configurar y gestionar sus ofertas fácilmente. Esto no solo incentiva a los miembros de la comunidad a participar en el ciclo de donaciones, sino que también impulsa el negocio a las empresas locales, creando un ecosistema mutuamente beneficioso. Desarrollamos un componente React a medida para manejar el flujo completo de cupones de descuento.
El proyecto completo se realizó con nuestro enfoque de desarrollo MVP (del ingles, minimum viable product) donde se buscó tener la plataforma funcionando con las caracteristicas mas importantes en el menor tiempo posible. Es así que pudimos completar el proyecto desde la fase inicial (Discovery) hasta su liberación en producción en apenas un poco mas de 4 meses continuando luego con el incremento de más funcionalidades y mejoras.
Tecnologías Utilizadas
Para desarrollar Trillage, utilizamos una variedad de tecnologías y herramientas avanzadas:
- Sitio comercial: Wordpress + Elementor + TailwindCSS
- App Frontend: Next.js 14 + TailwindCSS
- Dependencias y tecnologías adicionales: TypeScript, Sass (preprosesador CSS), FullCalendar (react), ApexCharts.js (react), Google Maps (react), React
- App Backend: Laravel 10 + Craftable
- Dependencias y tecnologías adicionales: PHP 8.2, Lodash (JavaScript), Nginx, Docker (entorno desarrollo), Portainer (entorno desarrollo)
- Base de Datos: PostgreSQL + Postgis
- Otras Herramientas:
- Testing Automatizado: Codeception (Backend) y CodeceptionJS (Frontend) implementando Gitlab Pipelines
- Stripe: Utilizamos Stripe Subscriptions, Payment Intents y Customer Portal.
- Terraform: Para la configuración y mantenimiento de la infraestructura.
- Serverless en Google Cloud:
- GCP con Cloud Run (Serverless): donde montamos el servidor en la nube que aloja la aplicacion Laravel y Next.js
- GCP Secret Manager: Para almacenar variables sensibles.
- GCP Artifact Registry: Para subir nuevas versiones de la aplicación y usarlas con Cloud Run.
- Autoscaling en Cloud Run Instances, donde pudimos asegurar el incremento de 1 a 5 veces los recursos.
- GCP SQL con PostgreSQL
- GCP Buckets: Para almacenamiento y compartir imágenes entre instancias del API.
- Redis: Utilizado con Laravel Cache.
- Documentación de API: Usando Swagger.
- GitLab CI/CD: Para validar código y ejecutar pruebas antes de cada despliegue implementando Gitlab Pipelines.
- Sendgrid: Para el envío de emails y plantillas personalizables.
Impacto
Trillage representa una plataforma innovadora y efectiva para unir comunidades a través de donaciones y apoyo mutuo. Nuestro equipo ha trabajado arduamente para desarrollar una solución robusta y escalable que facilita la colaboración entre empresas locales, escuelas y miembros de la comunidad. Con una infraestructura sólida y un conjunto completo de funcionalidades, Trillage está posicionada para tener un impacto positivo y duradero en las comunidades a las que sirve.