Skip to content
EXACTUM-devPublic

About

Aplicación para gestión de membresías y contenido

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

638 Commits

Folders and files

Repository files navigation

FisioMax

Status License Version

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.


Tabla de Contenidos


Características Principales

  • 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.

Tecnologías Utilizadas

Frontend

Backend

  • 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

Testing

  • Framework: Jest
  • Librerías: Supertest, React Testing Library

Arquitectura

El proyecto sigue una arquitectura N-Tier de 3 Capas (Presentación, Negocio y Datos), organizada en un monorepo:

  1. Capa de Presentación (Cliente): Frontend en React que interactúa con el usuario.
  2. Capa de Negocio (Servidor): API REST en Node.js/Express que procesa la lógica y reglas de negocio.
  3. 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
│   └── ...
└── ...

Comenzando

Prerrequisitos

  • 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)

Instalación

  1. Clonar el repositorio

    git clone https://github.com/EXACTUM-dev/FisioMax.git
    cd FisioMax
  2. Instalar dependencias del Backend

    cd backend
    npm install
  3. Instalar dependencias del Frontend

    cd ../frontend
    npm install

Configuración

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:3000

Ejecución

Para correr el proyecto en entorno de desarrollo, necesitarás dos terminales:

Terminal 1 (Backend):

cd backend
npm start

El servidor iniciará en http://localhost:3000

Terminal 2 (Frontend):

cd frontend
npm run dev

La aplicación iniciará en http://localhost:5173


Testing

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:security

Ejecutar tests del Frontend:

cd frontend
npm test

Contribución

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

Licencia

Distribuido bajo la licencia ISC. Ver LICENSE para más información.


Desarrollado por el equipo EXACTUM-dev

About

Aplicación para gestión de membresías y contenido

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages