Aplicación web completa para gestionar tareas de forma personal y colaborativa. Backend con Node.js + Express + SQLite. Frontend con HTML, CSS y JavaScript vanilla.
taskapp/
├── server.js ← Punto de entrada del servidor
├── package.json ← Dependencias
├── .env ← Variables de entorno (PORT, JWT_SECRET)
│
├── database/
│ └── db.js ← Inicialización de SQLite
│
├── routes/
│ ├── auth.js ← Rutas de autenticación
│ ├── tareas.js ← Rutas de tareas
│ └── usuarios.js ← Rutas de usuarios
│
├── controllers/
│ ├── authController.js ← Lógica de registro y login
│ ├── tareasController.js ← CRUD de tareas
│ └── usuariosController.js ← Gestión de usuarios
│
├── middlewares/
│ └── auth.js ← Verificación de JWT
│
└── public/ ← Frontend estático
├── index.html
├── css/
│ └── style.css
└── js/
└── app.js
npm installEdita el archivo .env si lo necesitas:
PORT=3000
JWT_SECRET=mi_clave_secreta_super_segura_2024
# Producción
npm start
# Desarrollo (con recarga automática)
npm run devhttp://localhost:3000
-
Crear cuenta: El primer usuario registrado recibe automáticamente el rol
admin. Los usuarios siguientes reciben el rolusuario. -
Iniciar sesión: Usa el email y contraseña que registraste.
-
Crear tareas: Haz clic en "+ Nueva Tarea" y completa el formulario.
-
Filtrar: Usa los selectores de la barra de herramientas para filtrar por estado o usuario.
-
Vista Kanban: Haz clic en ⊞ para ver las tareas organizadas en columnas.
Todas las rutas (excepto auth) requieren el header:
Authorization: Bearer <token>
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/auth/registro | Crear cuenta |
| POST | /api/auth/login | Iniciar sesión (devuelve JWT) |
| GET | /api/auth/perfil | Ver perfil del usuario autenticado |
| GET | /api/tareas | Listar tareas (filtros opcionales) |
| GET | /api/tareas/:id | Ver una tarea |
| POST | /api/tareas | Crear tarea |
| PUT | /api/tareas/:id | Actualizar tarea |
| DELETE | /api/tareas/:id | Eliminar tarea |
| GET | /api/usuarios | Listar usuarios |
| DELETE | /api/usuarios/:id | Eliminar usuario (solo admin) |
/api/tareas?estado=pendiente
/api/tareas?asignado_a=2
/api/tareas?buscar=diseño
/api/tareas?estado=en-progreso&asignado_a=1
- admin: Puede ver y gestionar todas las tareas y usuarios.
- usuario: Solo ve sus tareas (las que creó o le asignaron). El asignado puede cambiar el estado; el creador puede editar o eliminar.
- Backend: Node.js, Express, better-sqlite3, bcrypt, jsonwebtoken, dotenv, cors
- Frontend: HTML5, CSS3, JavaScript vanilla (fetch, async/await)
- Base de datos: SQLite (archivo local
database/tareas.db)