Tecnología utilizada

Stack moderno, abierto y orientado a la productividad del equipo.

HTML5 CSS3 JavaScript ES2024 Node.js 20 Express.js MySQL 8 GitHub Actions Docker
🖥️

Frontend

HTML semántico + CSS custom properties + JavaScript vanilla. Sin frameworks para mantener el bundle por debajo de 50 KB.

⚙️

Backend

API REST con Express.js, autenticación JWT y middleware de logging. Desplegado en Railway con auto-deploy desde main.

api/tasks.js
// Endpoint: obtener tareas de un proyecto
router.get('/projects/:id/tasks', verifyToken, async (req, res) => {
  try {
    const tasks = await db.query(
      `SELECT t.*, u.name AS assignee
         FROM tasks t
         LEFT JOIN users u ON t.assignee_id = u.id
        WHERE t.project_id = ?
        ORDER BY t.priority DESC`,
      [req.params.id]
    );
    res.json({ ok: true, data: tasks });
  } catch (err) {
    res.status(500).json({ ok: false, msg: err.message });
  }
});