Skip to content

ctrl1758/CtrlMP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CtrlMP - Sistema de Pagos en Tiempo Real

Descripción

CtrlMP es una aplicación web que permite monitorear pagos en tiempo real utilizando Firebase como backend. El sistema incluye autenticación de usuarios y un dashboard para visualizar transacciones.

Características

  • 🔐 Autenticación de usuarios con Firebase Auth
  • 📊 Dashboard de pagos en tiempo real
  • 🔄 Actualización automática de datos
  • 📱 Interfaz responsive
  • ⚡ Despliegue automático con GitHub Actions

Tecnologías Utilizadas

  • Frontend: HTML, CSS, JavaScript
  • Backend: Firebase (Firestore, Authentication)
  • Hosting: Firebase Hosting
  • CI/CD: GitHub Actions

Estructura del Proyecto

CtrlMP/
├── functions/           # Cloud Functions
│   ├── public/         # Archivos públicos
│   │   └── pagos.html  # Dashboard de pagos
│   └── index.js        # Funciones principales
├── firebase.json       # Configuración de Firebase
├── firestore.rules     # Reglas de seguridad
└── .github/           # Configuración de GitHub Actions

Sobre la Arquitectura del Proyecto

La estructura que implementamos se llama comúnmente "estructura por capas" o "arquitectura en capas", y más específicamente sigue el patrón de "arquitectura MVC (Modelo-Vista-Controlador)" extendido con componentes adicionales. En el contexto de aplicaciones de servidor como esta, también se le conoce como:

  1. Arquitectura por capas (Layered Architecture) - Separa la aplicación en capas lógicas: servicios, controladores, rutas, middleware, etc.

  2. Arquitectura basada en servicios (Service-based Architecture) - Donde la lógica de negocio se encapsula en servicios reutilizables.

  3. Arquitectura RESTful - Con rutas claramente definidas que siguen principios REST.

  4. Patrón MVC (Modelo-Vista-Controlador) extendido - Aunque no tenemos un componente de vista tradicional en una API, sí tenemos controladores y modelos (en este caso, servicios que actúan como modelos lógicos).

Esta estructura también incorpora principios de separación de responsabilidades (SRP) del conjunto de principios SOLID, ya que cada archivo y directorio tiene una única responsabilidad bien definida.

En el contexto de Node.js y Express, esta organización se considera una estructura modular o estructura por módulos, ya que cada componente (rutas, controladores, servicios) está encapsulado en módulos independientes que se importan y utilizan en el archivo principal.

Configuración

Prerrequisitos

  • Node.js (versión 16 o superior)
  • Firebase CLI
  • Cuenta de GitHub
  • Proyecto de Firebase

Instalación

  1. Clona el repositorio:
git clone https://github.com/tu-usuario/CtrlMP.git
cd CtrlMP
  1. Instala las dependencias:
cd functions
npm install
  1. Configura Firebase:
firebase login
firebase use ctrlmp-d13a1

Despliegue

El proyecto se despliega automáticamente cada vez que se hace push a la rama principal. También puedes desplegar manualmente:

firebase deploy

Variables de Entorno

Asegúrate de configurar las siguientes variables en GitHub Secrets:

  • FIREBASE_SERVICE_ACCOUNT_CTRLMP: Contenido del archivo functions/config/credCtrlMp.json

Nota: El proyecto ya incluye el archivo de credenciales credCtrlMp.json que está protegido en .gitignore.

Contribución

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

Contacto

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published