Fisiomove es una aplicación web completa para la gestión de consultorios de fisioterapia. Permite la administración de pacientes, citas, historiales clínicos y notificaciones, con diferentes roles de usuario (administradores, fisioterapeutas y pacientes).
Componentes principales:
- Página pública (homepage, login)
- Frontend protegido para administración, fisioterapeutas y pacientes
- Módulos: Dashboard, citas, pacientes, historial, notificaciones.
- Framework: Angular + RxJS
- Características:
- TypeScript estricto
- Diseño responsive (móvil, tablet)
- Componentes reutilizables
- Rutas protegidas con roles
- Stack: FastAPI + Python 3.13 + PostgreSQL + SQLAlchemy/Alembic + Pydantic
- Estructura modular:
- Módulos: auth, citas, pacientes, historial, notificaciones, core, dashboard
- Características:
- Python tipado con Pydantic para validación
- Autenticación JWT con roles
- Endpoints CRUD completos
- Manejo de errores global
- Tests con pytest
- Node.js (v20+)
- Python 3.13+
- PostgreSQL
- Git
# Clonar el repositorio
git clone https://github.com/SourceSquack/fisiomove.git
cd fisiomove/backend
# Crear entorno virtual
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
# Instalar dependencias
pip install -r requirements.txt
# Configurar base de datos
# Crear archivo .env con las variables de entorno
cp .env.example .env
# Ejecutar migraciones
alembic upgrade head
# Iniciar servidor de desarrollo
uvicorn main:app --reload
# Navegar al directorio frontend
cd frontend
# Instalar dependencias
npm install
# Iniciar servidor de desarrollo
ng serve
fisiomove/
├── backend/
│ ├── app/
│ │ ├── auth/
│ │ ├── citas/
│ │ ├── pacientes/
│ │ ├── historial/
│ │ ├── notificaciones/
│ │ ├── core/
│ │ └── dashboard/
│ ├── tests/
│ ├── alembic/
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ │ ├── auth/
│ │ │ ├── dashboard/
│ │ │ ├── citas/
│ │ │ ├── pacientes/
│ │ │ ├── historial/
│ │ │ ├── notificaciones/
│ │ │ └── shared/
│ │ └── assets/
│ └── package.json
└── README.md
uvicorn main:app --reload
- Servidor de desarrollopytest
- Ejecutar testsalembic upgrade head
- Aplicar migracionesalembic revision --autogenerate -m "mensaje"
- Crear nueva migración
ng serve
- Servidor de desarrollong build
- Build de producciónng test
- Ejecutar tests unitariosng e2e
- Tests end-to-endng lint
- Linter
- Administrador: Gestión completa del sistema, usuarios y configuración
- Fisioterapeuta: Gestión de pacientes, citas y historiales clínicos
- Paciente: Visualización de citas, historial y perfil personal
# Ejecutar todos los tests
pytest
# Ejecutar tests con coverage
pytest --cov=app
# Ejecutar tests específicos
pytest tests/test_auth.py
# Tests unitarios
ng test
# Tests e2e
ng e2e
# Tests con coverage
ng test --code-coverage
DATABASE_URL=postgresql://user:password@localhost/fisiomove
SECRET_KEY=your-secret-key
JWT_ALGORITHM=HS256
JWT_EXPIRATION_DELTA=30
CORS_ORIGINS=http://localhost:4200
export const environment = {
production: false,
apiUrl: "http://localhost:8000/api",
jwtTokenKey: "fisiomove_token",
};
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.