Plataforma integral para la gestión de contenido fisioterapéutico y membresías de usuarios.
FisioMax es una aplicación web diseñada para modernizar la interacción entre fisioterapeutas y pacientes, permitiendo la gestión eficiente de membresías, acceso a contenido exclusivo de rehabilitación y seguimiento de pagos.
- Características Principales
- Tecnologías Utilizadas
- Arquitectura
- Comenzando
- Ejecución
- Testing
- Contribución
- Licencia
- Gestión de Usuarios: Registro e inicio de sesión seguro mediante Clerk.
- Membresías y Pagos: Integración completa con Mercado Pago para suscripciones (Básica, Premium, Empresarial).
- Contenido Multimedia: Visualización de videos y guías de ejercicios fisioterapéuticos.
- Perfil de Usuario: Historial de pagos, descarga de comprobantes y gestión de cuenta.
- Panel Administrativo: Visualización de usuarios y estados de pago (Role-Based Access Control).
- Seguridad: Protección de rutas, validación de datos y manejo seguro de sesiones.
- Framework: React 19
- Build Tool: Vite
- Estilos: Tailwind CSS 4
- Autenticación: Clerk
- Routing: React Router 7
- Utilidades: React Icons, SweetAlert2, PDF.js
- Runtime: Node.js
- Framework: Express.js
- Base de Datos: MySQL (con
mysql2) - Seguridad: Helmet, CORS, Express Rate Limit, Joi (Validación)
- Servicios AWS: S3 (Almacenamiento), SES (Emails)
- Pagos: Mercado Pago SDK
- Framework: Jest
- Librerías: Supertest, React Testing Library
El proyecto sigue una arquitectura N-Tier de 3 Capas (Presentación, Negocio y Datos), organizada en un monorepo:
- Capa de Presentación (Cliente): Frontend en React que interactúa con el usuario.
- Capa de Negocio (Servidor): API REST en Node.js/Express que procesa la lógica y reglas de negocio.
- Capa de Datos: Base de datos MySQL para persistencia y almacenamiento.
FisioMax/
├── frontend/ # Capa de Presentación (React + Vite)
│ ├── src/
│ │ ├── components/ # Componentes reutilizables
│ │ ├── organisms/ # Componentes complejos de negocio
│ │ ├── pages/ # Vistas principales
│ │ └── services/ # Comunicación con API
│ └── ...
├── backend/ # Capa de Negocio (Node.js + Express)
│ ├── src/
│ │ ├── controllers/ # Lógica de negocio
│ │ ├── models/ # Acceso a datos (MySQL)
│ │ ├── routes/ # Definición de endpoints
│ │ └── config/ # Configuración de servicios
│ └── ...
└── ...
- Node.js (v18 o superior)
- npm (v9 o superior)
- MySQL Server
- Cuenta en Clerk (para autenticación)
- Cuenta en Mercado Pago (para pagos)
- Cuenta AWS (opcional, para S3/SES)
-
Clonar el repositorio
git clone https://github.com/EXACTUM-dev/FisioMax.git cd FisioMax -
Instalar dependencias del Backend
cd backend npm install -
Instalar dependencias del Frontend
cd ../frontend npm install
Crea un archivo .env en la carpeta backend y otro en frontend basándote en los ejemplos proporcionados (.env.example).
Backend (.env):
PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=tu_password
DB_NAME=fisiomax_db
CLERK_SECRET_KEY=sk_...
MERCADOPAGO_ACCESS_TOKEN=APP_USR-...
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...Frontend (.env):
VITE_CLERK_PUBLISHABLE_KEY=pk_...
VITE_API_URL=http://localhost:3000Para correr el proyecto en entorno de desarrollo, necesitarás dos terminales:
Terminal 1 (Backend):
cd backend
npm startEl servidor iniciará en http://localhost:3000
Terminal 2 (Frontend):
cd frontend
npm run devLa aplicación iniciará en http://localhost:5173
El proyecto cuenta con una suite de pruebas unitarias y de integración.
Ejecutar tests del Backend:
cd backend
npm test
# O para tests específicos:
npm run test:unit
npm run test:integration
npm run test:securityEjecutar tests del Frontend:
cd frontend
npm test- Haz un Fork del proyecto.
- Crea tu rama de funcionalidad (
git checkout -b feature/AmazingFeature). - Haz Commit de tus cambios (
git commit -m 'Add some AmazingFeature'). - Haz Push a la rama (
git push origin feature/AmazingFeature). - Abre un Pull Request.
Distribuido bajo la licencia ISC. Ver LICENSE para más información.
Desarrollado por el equipo EXACTUM-dev