URL de la API en Producción: https://taskflow-api-modern-task-management.onrender.com
Este proyecto implementa una API para gestionar tareas (To-Do), con funcionalidades de autenticación y seguridad utilizando Express, JWT y MongoDB.
DoDo! es una API diseñada para gestionar tareas y usuarios, ofreciendo:
- Usuarios: Registro e inicio de sesión mediante autenticación basada en JWT.
- Tareas: Crear, leer, actualizar y eliminar tareas (CRUD).
Utiliza tecnologías modernas como:
- Express: Framework para la creación de APIs RESTful.
- MongoDB: Base de datos NoSQL para almacenar datos de usuarios y tareas.
- JWT: Para la autenticación segura de los usuarios.
- Winston: Para la gestión y registro de logs.
- API RESTful con autenticación y autorización mediante JWT.
- Documentación interactiva a través de Swagger, facilitando el desarrollo y pruebas.
- Gestión completa de usuarios, permitiendo el registro e inicio de sesión.
- Operaciones CRUD para gestionar tareas (To-Do).
- Seguridad reforzada con CORS, rate limiting y validaciones de entrada.
Antes de ejecutar el proyecto, asegúrate de contar con lo siguiente:
- Node.js 18 o superior.
- MongoDB en ejecución local o un servicio en la nube.
- Las dependencias del proyecto (consultar
package.json). - Variables de entorno configuradas (ver sección de instalación).
Para configurar el proyecto en tu entorno local, sigue estos pasos:
-
Clonar el repositorio:
git clone https://github.com/AlejandroRomero17/DoDo-API-Modern-Task-Management-Backend cd DoDo-API-Modern-Task-Management-Backend -
Instalar las dependencias:
npm install
-
Configurar las variables de entorno:
Crea un archivo
.enven la raíz del proyecto y añade lo siguiente:NODE_ENV=development PORT=5000 DB_URL=mongodb://localhost:27017/todo JWT_SECRET=mi_secreto_para_jwt JWT_EXPIRES_IN=1d
-
Ejecutar el servidor:
npm run dev
La API estará disponible en http://localhost:5000 (para entorno local).
Accede a la documentación en tiempo real a través de Swagger UI:
- Producción: https://taskflow-api-modern-task-management.onrender.com/api-docs
- Local: http://localhost:5000/api-docs
Desde Swagger podrás explorar, testear y entender cada endpoint de la API.
Si el endpoint requiere autenticación, utiliza el botón Authorize e introduce tu token en el formato Bearer <tu-token>.
{
"userName": "juanperez123",
"firstName": "Juan",
"lastName": "Pérez",
"password": "contraseña_segura"
}{
"title": "Comprar pan",
"description": "Comprar pan en la tienda del barrio",
"completed": false
}POST /api/auth/register: Registra un nuevo usuario.POST /api/auth/login: Inicia sesión y devuelve un token JWT.
POST /api/todo/create-to-do: Crea una nueva tarea.GET /api/todo/get-all-to-do/:userId: Obtiene todas las tareas de un usuario.PATCH /api/todo/update-to-do/:id: Actualiza una tarea por ID.DELETE /api/todo/delete-to-do/:id: Elimina una tarea por ID.
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad). - Realiza tus cambios y haz commit (
git commit -m "Añadir nueva funcionalidad"). - Sube tus cambios (
git push origin feature/nueva-funcionalidad). - Abre un pull request.
Este proyecto está bajo la licencia MIT.
- Nombre: Alejandro Gonzalez Romero
- Correo electrónico: gonzalez.romero.alejandroo@gmail.com
- GitHub: https://github.com/AlejandroRomero17