Skip to content

Repository files navigation

Taskify Logo

🌐 Sitio web | 🎨 Frontend

📝 Taskify Backend

taskify-backend es una API RESTful para una aplicación de gestión de tareas tipo To-Do List, desarrollada con Node.js, Express y MongoDB. Soporta autenticación con JWT, operaciones CRUD para usuarios, carpetas, listas y tareas, incluyendo funcionalidades como papelera de reciclaje para tareas.


📦 Tecnologías

  • Node.js
  • Express
  • MongoDB + Mongoose
  • JWT + cookies para autenticación
  • bcrypt para hashing de contraseñas
  • express-validator para validación
  • dotenv para configuración
  • Cloudinary para la subida de imágenes de perfil
  • MongoDB Atlas para base de datos en la nube
  • Render para despliegue gratuito del backend
  • UptimeRobot para mantener activo el servidor en Render

🚀 Instalación

git clone https://github.com/tu-usuario/taskify-backend.git
cd taskify-backend
npm install

▶️ Ejecución del servidor

npm run dev

Servidor disponible en: http://localhost:5000


📂 Estructura del proyecto

taskify-backend/
├── controllers/
│ ├── foldersController.js
│ ├── listsController.js
│ ├── tasksController/
│ │ ├── create.js
│ │ ├── get.js
│ │ ├── update.js
│ │ ├── trash.js
│ │ └── ...
│ └── usersController.js
├── models/
│ ├── Folder.js
│ ├── List.js
│ ├── Task.js
│ └── User.js
├── routes/
│ ├── foldersRoutes.js
│ ├── listsRoutes.js
│ ├── tasksRoutes.js
│ └── usersRoutes.js
├── middlewares/
├── validators/
├── config/
├── app.js
├── server.js
├── .env
└── README.md

📁 Endpoints disponibles

👤 Usuarios

MétodoRutaDescripción
POST/api/users/registerRegistrar nuevo usuario
POST/api/users/loginIniciar sesión y obtener JWT
PATCH/api/users/change-passCambiar contraseña (requiere JWT)
GET/api/users/profileObtener perfil del usuario autenticado
PUT/api/users/imageSubir o actualizar imagen de perfil
GET/api/users/logoutCerrar sesión y eliminar cookie JWT

📂 Folders (Carpetas)

MétodoRutaDescripción
POST/api/folders/createCrear una nueva carpeta
GET/api/foldersObtener todas las carpetas del usuario
PUT/api/folders/update/:idActualizar nombre de una carpeta
DELETE/api/folders/delete/:idEliminar una carpeta

🗃️ Lists (Listas)

MétodoRutaDescripción
POST/api/lists/createCrear nueva lista dentro de una carpeta
GET/api/lists/folder/:folderIdObtener listas por carpeta
PUT/api/lists/update/:idActualizar una lista
DELETE/api/lists/delete/:idEliminar una lista
GET/api/lists/:idObtener una lista por su ID

✅ Tasks (Tareas)

MétodoRutaDescripción
POST/api/tasks/createCrear una nueva tarea
GET/api/tasks/list/:listIdObtener tareas activas de una lista
GET/api/tasks/:idObtener una sola tarea
GET/api/tasks/search?q=textoBuscar tareas por título o descripción
GET/api/tasks/trashObtener tareas archivadas
GET/api/tasks/date-rangeObtener tareas entre fechas (start y end)
PATCH/api/tasks/toggle/:idAlternar estado completado/incompleto
PUT/api/tasks/archive/:idArchivar tarea (mover a papelera)
PUT/api/tasks/restore/:idRestaurar tarea desde papelera
PUT/api/tasks/move/:idMover una tarea a otra lista
PUT/api/tasks/update/:idActualizar contenido de una tarea
DELETE/api/tasks/delete/:idEliminar permanentemente una tarea
DELETE/api/tasks/empty-trashVaciar la papelera del usuario
GET/api/tasksObtener todas las tareas del usuario
GET/api/tasks/completedObtener tareas completadas

🧠 Notas

  • Todos los :id deben ser IDs válidos de MongoDB.
  • priority puede ser: "low", "medium" o "high".
  • Tareas archivadas no se incluyen en los listados normales, pero pueden restaurarse o eliminarse desde la papelera.
  • Tiene variables de entorno que .envexample que son importantes para la buena ejecución de este proyecto.

👨‍💻 Autores

kemtch19
kemtch19
Juankyyy
Juankyyy

About

API RESTful para una aplicación de gestión de tareas llamada Taskify

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages