Configuración del entorno de desarrollo
Configure su entorno de desarrollo para contribuir a Duckling.
Requisitos previos
- Python 3.10+
- Node.js 18+
- Git
Configuración del backend
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
Configuración del frontend
Ejecutar servidores de desarrollo
Backend
El backend escucha en: http://localhost:5001
Frontend
El frontend escucha en: http://localhost:3000
Estructura del proyecto
duckling/
├── backend/
│ ├── duckling.py # Entrada de la aplicación Flask
│ ├── config.py # Configuración
│ ├── models/ # Modelos de base de datos
│ ├── routes/ # Endpoints de la API
│ ├── services/ # Lógica de negocio
│ └── tests/ # Pruebas del backend
├── frontend/
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── hooks/ # Hooks personalizados de React
│ │ ├── services/ # Cliente API
│ │ └── types/ # Tipos TypeScript
│ └── tests/ # Pruebas del frontend
└── docs/ # Documentación
Configuración del IDE
VS Code
Extensiones recomendadas:
- Python
- Pylance
- ESLint
- Prettier
- Tailwind CSS IntelliSense
Ajustes
.vscode/settings.json:
{
"python.defaultInterpreterPath": "./backend/venv/bin/python",
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Variables de entorno
Cree archivos .env para el desarrollo local:
Backend (.env)
Frontend (.env.local)
Recarga en caliente
Ambos servidores admiten recarga en caliente:
- Backend: el modo de depuración de Flask recarga automáticamente al cambiar archivos
- Frontend: el HMR de Vite actualiza componentes sin recargar la página
Depuración
Backend (VS Code)
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "duckling.py",
"FLASK_DEBUG": "1"
},
"args": ["run", "--port", "5001"],
"jinja": true,
"cwd": "${workspaceFolder}/backend"
}
]
}
Frontend
Use las herramientas de desarrollo del navegador con la extensión React Developer Tools.