Skip to content

CesarDevtools/To_do_list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📋 TaskPlanifier

🌐 Pruébalo aquí: https://taskplanifier.onrender.com


📖 Descripción

TaskPlanifier es una aplicación web moderna para la gestión de tareas personales que permite a los usuarios organizar, priorizar y hacer seguimiento de sus actividades diarias de manera eficiente y segura.

✨ Funcionalidades Principales

🔐 Sistema de Autenticación

  • Registro de nuevos usuarios con validación de datos
  • Inicio de sesión seguro con JWT (JSON Web Tokens)
  • Sistema de tokens dual (Access + Refresh) para máxima seguridad
  • Renovación automática de sesión sin interrupciones
  • Cierre de sesión seguro con limpieza completa de tokens

📝 Gestión Completa de Tareas

  • Crear nuevas tareas con título, categoría y descripción
  • Editar tareas existentes con formularios dinámicos
  • Eliminar tareas con confirmación de seguridad
  • Marcar como completadas con un simple clic
  • Reordenar tareas mediante drag & drop intuitivo

🎛️ Filtrado y Organización

  • Filtros por estado: Todas, Activas, Completadas
  • Filtros por categoría: Personal, Trabajo, Estudios, Hogar
  • Contador dinámico de tareas por estado
  • Interfaz limpia que se adapta al contenido

🎨 Experiencia de Usuario

  • Animaciones suaves y transiciones elegantes
  • Notificaciones en tiempo real para todas las acciones
  • Formularios intuitivos con validación instantánea
  • Mensajes de estado claro para orientar al usuario

🛠️ Tecnologías Utilizadas

Frontend

  • HTML5 - Estructura semántica y accesible
  • CSS3 - Diseño responsive con Flexbox y Grid
  • JavaScript ES6+ - Lógica del cliente y manipulación del DOM
  • Fetch API - Comunicación asíncrona con el backend

Backend

  • Node.js - Runtime del servidor
  • Express.js - Framework web minimalista y flexible
  • MongoDB - Base de datos NoSQL para persistencia
  • Mongoose - ODM para modelado elegante de datos

Seguridad

  • JWT (jsonwebtoken) - Autenticación stateless
  • bcrypt - Encriptación segura de contraseñas
  • CORS - Control de acceso entre dominios
  • cookie-parser - Manejo seguro de cookies httpOnly

🔧 Middlewares Implementados

🛡️ Seguridad

  • verifyJWT - Validación de tokens de acceso en rutas protegidas
  • CORS - Configuración de orígenes permitidos para peticiones
  • Rate Limiting - Protección contra ataques de fuerza bruta (implícito)

🔄 Procesamiento

  • express.json() - Parser de JSON para peticiones
  • express.urlencoded() - Manejo de datos de formularios
  • cookie-parser - Extracción y manejo de cookies de autenticación

📝 Logging y Debugging

  • Morgan (implícito) - Logging de peticiones HTTP
  • Error Handling - Middleware personalizado para manejo de errores

🏗️ Arquitectura

Patrón MVC

  • Modelos - Esquemas de datos para usuarios y tareas
  • Vistas - Interfaz dinámica con JavaScript vanilla
  • Controladores - Lógica de negocio separada por funcionalidad

API RESTful

  • Endpoints organizados por recurso (auth, tasks, users)
  • Métodos HTTP apropiados (GET, POST, PUT, DELETE)
  • Códigos de estado HTTP consistentes
  • Respuestas JSON estructuradas

Separación Frontend/Backend

  • Cliente estático servido independientemente
  • API backend como servicio separado
  • Comunicación asíncrona mediante AJAX
  • Despliegue independiente en diferentes plataformas

🔒 Características de Seguridad

  • Contraseñas hasheadas con salt único por usuario
  • Tokens JWT con expiración automática
  • Cookies httpOnly inaccesibles desde JavaScript
  • Validación de datos tanto en cliente como servidor
  • Protección CORS contra peticiones maliciosas
  • Aislamiento de usuarios - cada usuario solo ve sus tareas