Prueba Técnica – API de Tareas
Esta prueba técnica implementa una API REST de gestión de tareas (CRUD) usando Flask, aplicando una Clean Architecture simplificada para separar responsabilidades y facilitar mantenimiento, pruebas y escalabilidad.
Objetivo de la prueba
Implementar un CRUD de tareas
Aplique Clean Architecture para separar correctamente:
Lógica de negocio
Acceso a datos
Controladores HTTP
Mantener el código simple, claro y testeable
No usar base de datos (persistencia en memoria)
Estructura del proyecto BACKEND
backend/ # Carpeta raíz del backend (API Flask)
├─ app.py # Punto de entrada de la aplicación. Inicializa Flask y registra los controladores.
├─ requirements.txt # Lista de dependencias necesarias para ejecutar el proyecto.
│
├─ controllers/ # Capa de entrada (HTTP / API)
│ └─ tasks_controller.py # Define las rutas REST (/api/tasks) y maneja las peticiones HTTP.
│
├─ domain/ # Capa de dominio (núcleo del sistema)
│ ├─ entities.py # Definición de la entidad Task (modelo de negocio).
│ └─ repositories.py # Interfaces/contratos de los repositorios (abstracción del acceso a datos).
│
├─ repositories/ # Capa de infraestructura / acceso a datos
│ └─ task_repository.py # Implementación concreta del repositorio de tareas (persistencia en memoria).
│
├─ useCases/ # Capa de lógica de negocio (casos de uso)
│ └─ task_service.py # Reglas de negocio para crear, listar, actualizar y eliminar tareas.
│
└─ tests/ # Pruebas unitarias del proyecto
└─ test_task_service.py # Tests de los casos de uso, sin depender de Flask ni del HTTP.
Arquitectura aplicada
Controller (HTTP)
↓
Use Case (Lógica de negocio)
↓
Repository (Acceso a datos)
↓
Domain (Entidades y contratos)
Instalación y ejecución
python -m venv venv
Instalar dependencias: pip install -r requirements.txt
Ejecutar la API python app.py
Ejecutar pruebas python -m pytest -v
NOTA: cuando backend genere el servidor local ejemplo, http://xxx.xxx.xx:5000/ añadirlo en el package.json del frontend con la clave "proxy" ejemplo:
"proxy": "http://xxx.x.x.x:5000",
Esto es para poder mantener conectado el frontend con el backend y NO TENER CONFLICTOS
Frontend – Instalación y ejecución Ubicarse en la carpeta /frontend
Antes de comenzar, asegúrate de tener instalado:
Node.js (versión recomendada: 18.x o superior)
npm (incluido con Node.js)
Instala las dependencia npm install
Ejecuta el proyecto npm start
VIDEO LISTA DE TAREAS https://github.com/user-attachments/assets/00d82695-71e7-4f20-a4d1-ebedae77bbe1

