Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

ListTask image

About

prueba-dev-junior

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages