Una API REST desarrollada con Django Rest Framework para gestionar planes de entrenamiento personalizados y perfiles de usuario, se integra con OpenAI ChatGPT.
- Autenticación mediante JWT (JSON Web Tokens)
- Generación automática de planes de entrenamiento usando OpenAI
- Gestión de perfiles de usuario con preferencias de entrenamiento
- Documentación interactiva con Swagger/OpenAPI
- Tests automatizados para todos los componentes
- Internacionalización (i18n) configurada para español
- Python 3.x
- Django 5.1
- Django Rest Framework
- Simple JWT
- OpenAI API
- SQLite3
- Swagger/OpenAPI (drf-yasg)
- pytest
- Python 3.x
- pip (gestor de paquetes de Python)
- Cuenta en OpenAI (para la generación de planes)
git clone https://github.com/tu-usuario/fitness-api.git
cd fitness-apipython -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windowspip install -r requirements.txtSECRET_KEY=tu_secret_key
OPENAI_API_KEY=tu_api_key_de_openai
python manage.py migratepython manage.py createsuperuserpython manage.py runserverfitness_api/
├── apps/
│ ├── training/
│ │ ├── api/
│ │ ├── services/
│ │ ├── tests/
│ ├── users/
│ │ ├── api/
│ │ ├── tests/
├── .env.example
├── fitness_backend/
├── manage.py
├── requirements.txt
La documentación completa de la API está disponible en:
- Swagger UI:
/swagger/ - ReDoc:
/redoc/
POST /token/- Obtener token JWTPOST /token/refresh/- Refrescar token JWT
GET /training/- Listar planes de entrenamientoPOST /training/- Crear nuevo planPOST /training/generate/- Generar plan automáticoGET /training/{id}/- Obtener plan específicoPUT /training/{id}/- Actualizar plan completoPATCH /training/{id}/- Actualizar plan parcialmenteDELETE /training/{id}/- Eliminar plan
GET /users/profile/- Obtener perfil de usuarioPUT /users/profile/- Actualizar perfil completoPATCH /users/profile/- Actualizar perfil parcialmentePOST /users/register/- Registrar nuevo usuario
El proyecto utiliza variables de entorno para la configuración. Principales variables:
SECRET_KEY: Clave secreta de Django
OPENAI_API_KEY: API key de OpenAI
DEBUG: Modo debug (True/False)
El proyecto incluye tests exhaustivos para todos los componentes. Para ejecutarlos:
pytestO para un directorio específico:
pytest apps/training/tests/
pytest apps/users/tests/
