-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 04-12-2025 a las 15:33:09
-- Versión del servidor: 10.4.32-MariaDB
-- Versión de PHP: 8.2.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de datos: `notas_db`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `courses`
--

CREATE TABLE `courses` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `professor` varchar(255) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `semester_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `courses`
--

INSERT INTO `courses` (`id`, `name`, `professor`, `description`, `semester_id`) VALUES
(7, 'Procesador de textos', 'Profesor por asignar', 'Descripción no disponible', 1),
(8, 'Tic', 'Profesor por asignar', 'Descripción no disponible', 1),
(9, 'Arquitectura de plataformas y soporte técnico', 'Profesor por asignar', 'Descripción no disponible', 1),
(10, 'Hoja de calculo', 'Profesor por asignar', 'Descripción no disponible', 1),
(11, 'Plataformas de productividad', 'Profesor por asignar', 'Descripción no disponible', 1),
(12, 'Diagnóstico y solución de incidentes', 'Profesor por asignar', 'Descripción no disponible', 1),
(13, 'Modela de procesos de negocio', 'Profesor por asignar', 'Descripción no disponible', 2),
(14, 'Comunicación efectiva', 'Profesor por asignar', 'Descripción no disponible', 2),
(15, 'Mantenimiento y configuración de equipos informáticos', 'Profesor por asignar', 'Descripción no disponible', 2),
(16, 'Administración de sistemas operativos', 'Profesor por asignar', 'Descripción no disponible', 2),
(17, 'Administración de centros de computo', 'Profesor por asignar', 'Descripción no disponible', 2),
(18, 'Tutoría', 'Profesor por asignar', 'Descripción no disponible', 2),
(19, 'Trabajo colaborativo', 'Profesor por asignar', 'Descripción no disponible', 2),
(20, 'Redes y teleproceso', 'Profesor por asignar', 'Descripción no disponible', 2),
(21, 'Ensamblaje y reparación de computadoras', 'Profesor por asignar', 'Descripción no disponible', 3),
(22, 'Modelamiento de sistemas', 'Profesor por asignar', 'Descripción no disponible', 3),
(23, 'Administración y gestión de redes y servidores', 'Profesor por asignar', 'Descripción no disponible', 3),
(24, 'Inglés para la comunicación oral', 'Profesor por asignar', 'Descripción no disponible', 3),
(25, 'Pruebas de rendimiento de redes', 'Profesor por asignar', 'Descripción no disponible', 3),
(26, 'Auditoria en computación como informática y sistemas', 'Profesor por asignar', 'Descripción no disponible', 3),
(27, 'Análisis y diseño de sistemas', 'Profesor por asignar', 'Descripción no disponible', 4),
(28, 'Base de datos', 'Profesor por asignar', 'Descripción no disponible', 4),
(29, 'Emprendimiento', 'Profesor por asignar', 'Descripción no disponible', 4),
(30, 'Tutoría', 'Profesor por asignar', 'Descripción no disponible', 4),
(31, 'Fundamentos de programación', 'Profesor por asignar', 'Descripción no disponible', 4),
(32, 'Seguridad informática', 'Profesor por asignar', 'Descripción no disponible', 4),
(33, 'Lenguaje de programación', 'Profesor por asignar', 'Descripción no disponible', 4),
(34, 'Cultura ambiental', 'Profesor por asignar', 'Descripción no disponible', 4),
(35, 'Programación orientada a objetos', 'Profesor por asignar', 'Descripción no disponible', 5),
(36, 'Programación distribuida', 'Profesor por asignar', 'Descripción no disponible', 5),
(37, 'Diseño web', 'Profesor por asignar', 'Descripción no disponible', 5),
(38, 'Solución de problemas', 'Profesor por asignar', 'Descripción no disponible', 5),
(39, 'Administración de base de datos', 'Profesor por asignar', 'Descripción no disponible', 5),
(40, 'Diseño y animación de gráficos', 'Profesor por asignar', 'Descripción no disponible', 5),
(41, 'Investigación', 'Profesor por asignar', 'Descripción no disponible', 5),
(42, 'Fundamentos de internet de las cosas', 'Profesor por asignar', 'Descripción no disponible', 6),
(43, 'Comportamiento ético', 'Profesor por asignar', 'Descripción no disponible', 6),
(44, 'Gestión de proyectos de tecnología de información', 'Profesor por asignar', 'Descripción no disponible', 6),
(45, 'Desarrollo de aplicaciones móviles', 'Profesor por asignar', 'Descripción no disponible', 6),
(46, 'Taller de programación web', 'Profesor por asignar', 'Descripción no disponible', 6);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `enrollments`
--

CREATE TABLE `enrollments` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `enrollments`
--

INSERT INTO `enrollments` (`id`, `user_id`, `course_id`) VALUES
(4, 1, 7),
(5, 1, 8),
(6, 1, 9),
(7, 1, 10),
(8, 1, 11),
(9, 1, 12),
(10, 1, 13),
(11, 1, 14),
(12, 1, 15),
(13, 1, 16),
(14, 1, 17),
(15, 1, 18),
(16, 1, 19),
(17, 1, 20),
(18, 1, 21),
(19, 1, 22),
(20, 1, 23),
(21, 1, 24),
(22, 1, 25),
(23, 1, 26),
(24, 1, 27),
(25, 1, 28),
(26, 1, 29),
(27, 1, 30),
(28, 1, 31),
(29, 1, 32),
(30, 1, 33),
(31, 1, 34),
(32, 1, 35),
(33, 1, 36),
(34, 1, 37),
(35, 1, 38),
(36, 1, 39),
(37, 1, 40),
(38, 1, 41),
(39, 1, 42),
(40, 1, 43),
(41, 1, 44),
(42, 1, 45),
(43, 1, 46),
(170, 5, 7),
(171, 5, 8),
(172, 5, 9),
(173, 5, 10),
(174, 5, 11),
(175, 5, 12),
(176, 5, 13),
(177, 5, 14),
(178, 5, 15),
(179, 5, 16),
(180, 5, 17),
(181, 5, 18),
(182, 5, 19),
(183, 5, 20),
(184, 5, 21),
(185, 5, 22),
(186, 5, 23),
(187, 5, 24),
(188, 5, 25),
(189, 5, 26),
(190, 5, 27),
(191, 5, 28),
(192, 5, 29),
(193, 5, 30),
(194, 5, 31),
(195, 5, 32),
(196, 5, 33),
(197, 5, 34),
(198, 5, 35),
(199, 5, 36),
(200, 5, 37),
(201, 5, 38),
(202, 5, 39),
(203, 5, 40),
(204, 5, 41),
(205, 5, 42),
(206, 5, 43),
(207, 5, 44),
(208, 5, 45),
(209, 5, 46),
(210, 6, 7),
(211, 6, 8),
(212, 6, 9),
(213, 6, 10),
(214, 6, 11),
(215, 6, 12),
(216, 6, 13),
(217, 6, 14),
(218, 6, 15),
(219, 6, 16),
(220, 6, 17),
(221, 6, 18),
(222, 6, 19),
(223, 6, 20),
(224, 6, 21),
(225, 6, 22),
(226, 6, 23),
(227, 6, 24),
(228, 6, 25),
(229, 6, 26),
(230, 6, 27),
(231, 6, 28),
(232, 6, 29),
(233, 6, 30),
(234, 6, 31),
(235, 6, 32),
(236, 6, 33),
(237, 6, 34),
(238, 6, 35),
(239, 6, 36),
(240, 6, 37),
(241, 6, 38),
(242, 6, 39),
(243, 6, 40),
(244, 6, 41),
(245, 6, 42),
(246, 6, 43),
(247, 6, 44),
(248, 6, 45),
(249, 6, 46);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `grades`
--

CREATE TABLE `grades` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `enrollment_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `grade_name` varchar(100) NOT NULL COMMENT 'Ej: Parcial 1, Tarea 2',
  `grade_value` decimal(4,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `grades`
--

INSERT INTO `grades` (`id`, `user_id`, `enrollment_id`, `course_id`, `grade_name`, `grade_value`) VALUES
(166, 5, 170, 7, 'Práctica Calificada 1', 0.00),
(167, 5, 170, 7, 'Práctica Calificada 2', 0.00),
(168, 5, 170, 7, 'Examen Parcial', 0.00),
(169, 5, 170, 7, 'Examen Final', 0.00),
(170, 5, 171, 8, 'Práctica Calificada 1', 0.00),
(171, 5, 171, 8, 'Práctica Calificada 2', 0.00),
(172, 5, 171, 8, 'Examen Parcial', 0.00),
(173, 5, 171, 8, 'Examen Final', 0.00),
(174, 5, 172, 9, 'Práctica Calificada 1', 0.00),
(175, 5, 172, 9, 'Práctica Calificada 2', 0.00),
(176, 5, 172, 9, 'Examen Parcial', 0.00),
(177, 5, 172, 9, 'Examen Final', 0.00),
(178, 5, 173, 10, 'Práctica Calificada 1', 0.00),
(179, 5, 173, 10, 'Práctica Calificada 2', 0.00),
(180, 5, 173, 10, 'Examen Parcial', 0.00),
(181, 5, 173, 10, 'Examen Final', 0.00),
(182, 5, 174, 11, 'Práctica Calificada 1', 0.00),
(183, 5, 174, 11, 'Práctica Calificada 2', 0.00),
(184, 5, 174, 11, 'Examen Parcial', 0.00),
(185, 5, 174, 11, 'Examen Final', 0.00),
(186, 5, 175, 12, 'Práctica Calificada 1', 0.00),
(187, 5, 175, 12, 'Práctica Calificada 2', 0.00),
(188, 5, 175, 12, 'Examen Parcial', 0.00),
(189, 5, 175, 12, 'Examen Final', 0.00),
(190, 5, 176, 13, 'Práctica Calificada 1', 0.00),
(191, 5, 176, 13, 'Práctica Calificada 2', 0.00),
(192, 5, 176, 13, 'Examen Parcial', 0.00),
(193, 5, 176, 13, 'Examen Final', 0.00),
(194, 5, 177, 14, 'Práctica Calificada 1', 0.00),
(195, 5, 177, 14, 'Práctica Calificada 2', 0.00),
(196, 5, 177, 14, 'Examen Parcial', 0.00),
(197, 5, 177, 14, 'Examen Final', 0.00),
(198, 5, 178, 15, 'Práctica Calificada 1', 0.00),
(199, 5, 178, 15, 'Práctica Calificada 2', 0.00),
(200, 5, 178, 15, 'Examen Parcial', 0.00),
(201, 5, 178, 15, 'Examen Final', 0.00),
(202, 5, 179, 16, 'Práctica Calificada 1', 0.00),
(203, 5, 179, 16, 'Práctica Calificada 2', 0.00),
(204, 5, 179, 16, 'Examen Parcial', 0.00),
(205, 5, 179, 16, 'Examen Final', 0.00),
(206, 5, 180, 17, 'Práctica Calificada 1', 0.00),
(207, 5, 180, 17, 'Práctica Calificada 2', 0.00),
(208, 5, 180, 17, 'Examen Parcial', 0.00),
(209, 5, 180, 17, 'Examen Final', 0.00),
(210, 5, 181, 18, 'Práctica Calificada 1', 0.00),
(211, 5, 181, 18, 'Práctica Calificada 2', 0.00),
(212, 5, 181, 18, 'Examen Parcial', 0.00),
(213, 5, 181, 18, 'Examen Final', 0.00),
(214, 5, 182, 19, 'Práctica Calificada 1', 0.00),
(215, 5, 182, 19, 'Práctica Calificada 2', 0.00),
(216, 5, 182, 19, 'Examen Parcial', 0.00),
(217, 5, 182, 19, 'Examen Final', 0.00),
(218, 5, 183, 20, 'Práctica Calificada 1', 0.00),
(219, 5, 183, 20, 'Práctica Calificada 2', 0.00),
(220, 5, 183, 20, 'Examen Parcial', 0.00),
(221, 5, 183, 20, 'Examen Final', 0.00),
(222, 5, 184, 21, 'Práctica Calificada 1', 0.00),
(223, 5, 184, 21, 'Práctica Calificada 2', 0.00),
(224, 5, 184, 21, 'Examen Parcial', 0.00),
(225, 5, 184, 21, 'Examen Final', 0.00),
(226, 5, 185, 22, 'Práctica Calificada 1', 0.00),
(227, 5, 185, 22, 'Práctica Calificada 2', 0.00),
(228, 5, 185, 22, 'Examen Parcial', 0.00),
(229, 5, 185, 22, 'Examen Final', 0.00),
(230, 5, 186, 23, 'Práctica Calificada 1', 0.00),
(231, 5, 186, 23, 'Práctica Calificada 2', 0.00),
(232, 5, 186, 23, 'Examen Parcial', 0.00),
(233, 5, 186, 23, 'Examen Final', 0.00),
(234, 5, 187, 24, 'Práctica Calificada 1', 0.00),
(235, 5, 187, 24, 'Práctica Calificada 2', 0.00),
(236, 5, 187, 24, 'Examen Parcial', 0.00),
(237, 5, 187, 24, 'Examen Final', 0.00),
(238, 5, 188, 25, 'Práctica Calificada 1', 0.00),
(239, 5, 188, 25, 'Práctica Calificada 2', 0.00),
(240, 5, 188, 25, 'Examen Parcial', 0.00),
(241, 5, 188, 25, 'Examen Final', 0.00),
(242, 5, 189, 26, 'Práctica Calificada 1', 0.00),
(243, 5, 189, 26, 'Práctica Calificada 2', 0.00),
(244, 5, 189, 26, 'Examen Parcial', 0.00),
(245, 5, 189, 26, 'Examen Final', 0.00),
(246, 5, 190, 27, 'Práctica Calificada 1', 0.00),
(247, 5, 190, 27, 'Práctica Calificada 2', 0.00),
(248, 5, 190, 27, 'Examen Parcial', 0.00),
(249, 5, 190, 27, 'Examen Final', 0.00),
(250, 5, 191, 28, 'Práctica Calificada 1', 0.00),
(251, 5, 191, 28, 'Práctica Calificada 2', 0.00),
(252, 5, 191, 28, 'Examen Parcial', 0.00),
(253, 5, 191, 28, 'Examen Final', 0.00),
(254, 5, 192, 29, 'Práctica Calificada 1', 0.00),
(255, 5, 192, 29, 'Práctica Calificada 2', 0.00),
(256, 5, 192, 29, 'Examen Parcial', 0.00),
(257, 5, 192, 29, 'Examen Final', 0.00),
(258, 5, 193, 30, 'Práctica Calificada 1', 0.00),
(259, 5, 193, 30, 'Práctica Calificada 2', 0.00),
(260, 5, 193, 30, 'Examen Parcial', 0.00),
(261, 5, 193, 30, 'Examen Final', 0.00),
(262, 5, 194, 31, 'Práctica Calificada 1', 0.00),
(263, 5, 194, 31, 'Práctica Calificada 2', 0.00),
(264, 5, 194, 31, 'Examen Parcial', 0.00),
(265, 5, 194, 31, 'Examen Final', 0.00),
(266, 5, 195, 32, 'Práctica Calificada 1', 0.00),
(267, 5, 195, 32, 'Práctica Calificada 2', 0.00),
(268, 5, 195, 32, 'Examen Parcial', 0.00),
(269, 5, 195, 32, 'Examen Final', 0.00),
(270, 5, 196, 33, 'Práctica Calificada 1', 0.00),
(271, 5, 196, 33, 'Práctica Calificada 2', 0.00),
(272, 5, 196, 33, 'Examen Parcial', 0.00),
(273, 5, 196, 33, 'Examen Final', 0.00),
(274, 5, 197, 34, 'Práctica Calificada 1', 0.00),
(275, 5, 197, 34, 'Práctica Calificada 2', 0.00),
(276, 5, 197, 34, 'Examen Parcial', 0.00),
(277, 5, 197, 34, 'Examen Final', 0.00),
(278, 5, 198, 35, 'Práctica Calificada 1', 0.00),
(279, 5, 198, 35, 'Práctica Calificada 2', 0.00),
(280, 5, 198, 35, 'Examen Parcial', 0.00),
(281, 5, 198, 35, 'Examen Final', 0.00),
(282, 5, 199, 36, 'Práctica Calificada 1', 0.00),
(283, 5, 199, 36, 'Práctica Calificada 2', 0.00),
(284, 5, 199, 36, 'Examen Parcial', 0.00),
(285, 5, 199, 36, 'Examen Final', 0.00),
(286, 5, 200, 37, 'Práctica Calificada 1', 0.00),
(287, 5, 200, 37, 'Práctica Calificada 2', 0.00),
(288, 5, 200, 37, 'Examen Parcial', 0.00),
(289, 5, 200, 37, 'Examen Final', 0.00),
(290, 5, 201, 38, 'Práctica Calificada 1', 0.00),
(291, 5, 201, 38, 'Práctica Calificada 2', 0.00),
(292, 5, 201, 38, 'Examen Parcial', 0.00),
(293, 5, 201, 38, 'Examen Final', 0.00),
(294, 5, 202, 39, 'Práctica Calificada 1', 0.00),
(295, 5, 202, 39, 'Práctica Calificada 2', 0.00),
(296, 5, 202, 39, 'Examen Parcial', 0.00),
(297, 5, 202, 39, 'Examen Final', 0.00),
(298, 5, 203, 40, 'Práctica Calificada 1', 0.00),
(299, 5, 203, 40, 'Práctica Calificada 2', 0.00),
(300, 5, 203, 40, 'Examen Parcial', 0.00),
(301, 5, 203, 40, 'Examen Final', 0.00),
(302, 5, 204, 41, 'Práctica Calificada 1', 0.00),
(303, 5, 204, 41, 'Práctica Calificada 2', 0.00),
(304, 5, 204, 41, 'Examen Parcial', 0.00),
(305, 5, 204, 41, 'Examen Final', 0.00),
(306, 5, 205, 42, 'Práctica Calificada 1', 0.00),
(307, 5, 205, 42, 'Práctica Calificada 2', 0.00),
(308, 5, 205, 42, 'Examen Parcial', 0.00),
(309, 5, 205, 42, 'Examen Final', 0.00),
(310, 5, 206, 43, 'Práctica Calificada 1', 15.00),
(311, 5, 206, 43, 'Práctica Calificada 2', 0.00),
(312, 5, 206, 43, 'Examen Parcial', 0.00),
(313, 5, 206, 43, 'Examen Final', 20.00),
(314, 5, 207, 44, 'Práctica Calificada 1', 0.00),
(315, 5, 207, 44, 'Práctica Calificada 2', 0.00),
(316, 5, 207, 44, 'Examen Parcial', 0.00),
(317, 5, 207, 44, 'Examen Final', 0.00),
(318, 5, 208, 45, 'Práctica Calificada 1', 0.00),
(319, 5, 208, 45, 'Práctica Calificada 2', 0.00),
(320, 5, 208, 45, 'Examen Parcial', 0.00),
(321, 5, 208, 45, 'Examen Final', 0.00),
(322, 5, 209, 46, 'Práctica Calificada 1', 0.00),
(323, 5, 209, 46, 'Práctica Calificada 2', 0.00),
(324, 5, 209, 46, 'Examen Parcial', 0.00),
(325, 5, 209, 46, 'Examen Final', 0.00),
(326, 6, 210, 7, 'Práctica Calificada 1', 0.00),
(327, 6, 210, 7, 'Práctica Calificada 2', 0.00),
(328, 6, 210, 7, 'Examen Parcial', 0.00),
(329, 6, 210, 7, 'Examen Final', 0.00),
(330, 6, 211, 8, 'Práctica Calificada 1', 0.00),
(331, 6, 211, 8, 'Práctica Calificada 2', 0.00),
(332, 6, 211, 8, 'Examen Parcial', 0.00),
(333, 6, 211, 8, 'Examen Final', 0.00),
(334, 6, 212, 9, 'Práctica Calificada 1', 0.00),
(335, 6, 212, 9, 'Práctica Calificada 2', 0.00),
(336, 6, 212, 9, 'Examen Parcial', 0.00),
(337, 6, 212, 9, 'Examen Final', 0.00),
(338, 6, 213, 10, 'Práctica Calificada 1', 0.00),
(339, 6, 213, 10, 'Práctica Calificada 2', 0.00),
(340, 6, 213, 10, 'Examen Parcial', 0.00),
(341, 6, 213, 10, 'Examen Final', 0.00),
(342, 6, 214, 11, 'Práctica Calificada 1', 0.00),
(343, 6, 214, 11, 'Práctica Calificada 2', 0.00),
(344, 6, 214, 11, 'Examen Parcial', 0.00),
(345, 6, 214, 11, 'Examen Final', 0.00),
(346, 6, 215, 12, 'Práctica Calificada 1', 0.00),
(347, 6, 215, 12, 'Práctica Calificada 2', 0.00),
(348, 6, 215, 12, 'Examen Parcial', 0.00),
(349, 6, 215, 12, 'Examen Final', 0.00),
(350, 6, 216, 13, 'Práctica Calificada 1', 0.00),
(351, 6, 216, 13, 'Práctica Calificada 2', 0.00),
(352, 6, 216, 13, 'Examen Parcial', 0.00),
(353, 6, 216, 13, 'Examen Final', 0.00),
(354, 6, 217, 14, 'Práctica Calificada 1', 0.00),
(355, 6, 217, 14, 'Práctica Calificada 2', 0.00),
(356, 6, 217, 14, 'Examen Parcial', 0.00),
(357, 6, 217, 14, 'Examen Final', 0.00),
(358, 6, 218, 15, 'Práctica Calificada 1', 0.00),
(359, 6, 218, 15, 'Práctica Calificada 2', 0.00),
(360, 6, 218, 15, 'Examen Parcial', 0.00),
(361, 6, 218, 15, 'Examen Final', 0.00),
(362, 6, 219, 16, 'Práctica Calificada 1', 0.00),
(363, 6, 219, 16, 'Práctica Calificada 2', 0.00),
(364, 6, 219, 16, 'Examen Parcial', 0.00),
(365, 6, 219, 16, 'Examen Final', 0.00),
(366, 6, 220, 17, 'Práctica Calificada 1', 0.00),
(367, 6, 220, 17, 'Práctica Calificada 2', 0.00),
(368, 6, 220, 17, 'Examen Parcial', 0.00),
(369, 6, 220, 17, 'Examen Final', 0.00),
(370, 6, 221, 18, 'Práctica Calificada 1', 0.00),
(371, 6, 221, 18, 'Práctica Calificada 2', 0.00),
(372, 6, 221, 18, 'Examen Parcial', 0.00),
(373, 6, 221, 18, 'Examen Final', 0.00),
(374, 6, 222, 19, 'Práctica Calificada 1', 0.00),
(375, 6, 222, 19, 'Práctica Calificada 2', 0.00),
(376, 6, 222, 19, 'Examen Parcial', 0.00),
(377, 6, 222, 19, 'Examen Final', 0.00),
(378, 6, 223, 20, 'Práctica Calificada 1', 0.00),
(379, 6, 223, 20, 'Práctica Calificada 2', 0.00),
(380, 6, 223, 20, 'Examen Parcial', 0.00),
(381, 6, 223, 20, 'Examen Final', 0.00),
(382, 6, 224, 21, 'Práctica Calificada 1', 0.00),
(383, 6, 224, 21, 'Práctica Calificada 2', 0.00),
(384, 6, 224, 21, 'Examen Parcial', 0.00),
(385, 6, 224, 21, 'Examen Final', 0.00),
(386, 6, 225, 22, 'Práctica Calificada 1', 0.00),
(387, 6, 225, 22, 'Práctica Calificada 2', 0.00),
(388, 6, 225, 22, 'Examen Parcial', 0.00),
(389, 6, 225, 22, 'Examen Final', 0.00),
(390, 6, 226, 23, 'Práctica Calificada 1', 0.00),
(391, 6, 226, 23, 'Práctica Calificada 2', 0.00),
(392, 6, 226, 23, 'Examen Parcial', 0.00),
(393, 6, 226, 23, 'Examen Final', 0.00),
(394, 6, 227, 24, 'Práctica Calificada 1', 0.00),
(395, 6, 227, 24, 'Práctica Calificada 2', 0.00),
(396, 6, 227, 24, 'Examen Parcial', 0.00),
(397, 6, 227, 24, 'Examen Final', 0.00),
(398, 6, 228, 25, 'Práctica Calificada 1', 0.00),
(399, 6, 228, 25, 'Práctica Calificada 2', 0.00),
(400, 6, 228, 25, 'Examen Parcial', 0.00),
(401, 6, 228, 25, 'Examen Final', 0.00),
(402, 6, 229, 26, 'Práctica Calificada 1', 0.00),
(403, 6, 229, 26, 'Práctica Calificada 2', 0.00),
(404, 6, 229, 26, 'Examen Parcial', 0.00),
(405, 6, 229, 26, 'Examen Final', 0.00),
(406, 6, 230, 27, 'Práctica Calificada 1', 0.00),
(407, 6, 230, 27, 'Práctica Calificada 2', 0.00),
(408, 6, 230, 27, 'Examen Parcial', 0.00),
(409, 6, 230, 27, 'Examen Final', 0.00),
(410, 6, 231, 28, 'Práctica Calificada 1', 0.00),
(411, 6, 231, 28, 'Práctica Calificada 2', 0.00),
(412, 6, 231, 28, 'Examen Parcial', 0.00),
(413, 6, 231, 28, 'Examen Final', 0.00),
(414, 6, 232, 29, 'Práctica Calificada 1', 0.00),
(415, 6, 232, 29, 'Práctica Calificada 2', 0.00),
(416, 6, 232, 29, 'Examen Parcial', 0.00),
(417, 6, 232, 29, 'Examen Final', 0.00),
(418, 6, 233, 30, 'Práctica Calificada 1', 0.00),
(419, 6, 233, 30, 'Práctica Calificada 2', 0.00),
(420, 6, 233, 30, 'Examen Parcial', 0.00),
(421, 6, 233, 30, 'Examen Final', 0.00),
(422, 6, 234, 31, 'Práctica Calificada 1', 0.00),
(423, 6, 234, 31, 'Práctica Calificada 2', 0.00),
(424, 6, 234, 31, 'Examen Parcial', 0.00),
(425, 6, 234, 31, 'Examen Final', 0.00),
(426, 6, 235, 32, 'Práctica Calificada 1', 0.00),
(427, 6, 235, 32, 'Práctica Calificada 2', 0.00),
(428, 6, 235, 32, 'Examen Parcial', 0.00),
(429, 6, 235, 32, 'Examen Final', 0.00),
(430, 6, 236, 33, 'Práctica Calificada 1', 0.00),
(431, 6, 236, 33, 'Práctica Calificada 2', 0.00),
(432, 6, 236, 33, 'Examen Parcial', 0.00),
(433, 6, 236, 33, 'Examen Final', 0.00),
(434, 6, 237, 34, 'Práctica Calificada 1', 0.00),
(435, 6, 237, 34, 'Práctica Calificada 2', 0.00),
(436, 6, 237, 34, 'Examen Parcial', 0.00),
(437, 6, 237, 34, 'Examen Final', 0.00),
(438, 6, 238, 35, 'Práctica Calificada 1', 0.00),
(439, 6, 238, 35, 'Práctica Calificada 2', 0.00),
(440, 6, 238, 35, 'Examen Parcial', 0.00),
(441, 6, 238, 35, 'Examen Final', 0.00),
(442, 6, 239, 36, 'Práctica Calificada 1', 0.00),
(443, 6, 239, 36, 'Práctica Calificada 2', 0.00),
(444, 6, 239, 36, 'Examen Parcial', 0.00),
(445, 6, 239, 36, 'Examen Final', 0.00),
(446, 6, 240, 37, 'Práctica Calificada 1', 0.00),
(447, 6, 240, 37, 'Práctica Calificada 2', 0.00),
(448, 6, 240, 37, 'Examen Parcial', 0.00),
(449, 6, 240, 37, 'Examen Final', 0.00),
(450, 6, 241, 38, 'Práctica Calificada 1', 0.00),
(451, 6, 241, 38, 'Práctica Calificada 2', 0.00),
(452, 6, 241, 38, 'Examen Parcial', 0.00),
(453, 6, 241, 38, 'Examen Final', 0.00),
(454, 6, 242, 39, 'Práctica Calificada 1', 0.00),
(455, 6, 242, 39, 'Práctica Calificada 2', 0.00),
(456, 6, 242, 39, 'Examen Parcial', 0.00),
(457, 6, 242, 39, 'Examen Final', 0.00),
(458, 6, 243, 40, 'Práctica Calificada 1', 0.00),
(459, 6, 243, 40, 'Práctica Calificada 2', 0.00),
(460, 6, 243, 40, 'Examen Parcial', 0.00),
(461, 6, 243, 40, 'Examen Final', 0.00),
(462, 6, 244, 41, 'Práctica Calificada 1', 0.00),
(463, 6, 244, 41, 'Práctica Calificada 2', 0.00),
(464, 6, 244, 41, 'Examen Parcial', 0.00),
(465, 6, 244, 41, 'Examen Final', 0.00),
(466, 6, 245, 42, 'Práctica Calificada 1', 0.00),
(467, 6, 245, 42, 'Práctica Calificada 2', 0.00),
(468, 6, 245, 42, 'Examen Parcial', 0.00),
(469, 6, 245, 42, 'Examen Final', 0.00),
(470, 6, 246, 43, 'Práctica Calificada 1', 20.00),
(471, 6, 246, 43, 'Práctica Calificada 2', 0.00),
(472, 6, 246, 43, 'Examen Parcial', 15.00),
(473, 6, 246, 43, 'Examen Final', 11.00),
(474, 6, 247, 44, 'Práctica Calificada 1', 0.00),
(475, 6, 247, 44, 'Práctica Calificada 2', 0.00),
(476, 6, 247, 44, 'Examen Parcial', 0.00),
(477, 6, 247, 44, 'Examen Final', 0.00),
(478, 6, 248, 45, 'Práctica Calificada 1', 0.00),
(479, 6, 248, 45, 'Práctica Calificada 2', 0.00),
(480, 6, 248, 45, 'Examen Parcial', 0.00),
(481, 6, 248, 45, 'Examen Final', 0.00),
(482, 6, 249, 46, 'Práctica Calificada 1', 0.00),
(483, 6, 249, 46, 'Práctica Calificada 2', 0.00),
(484, 6, 249, 46, 'Examen Parcial', 0.00),
(485, 6, 249, 46, 'Examen Final', 0.00);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `schedules`
--

CREATE TABLE `schedules` (
  `id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `day_of_week` varchar(20) NOT NULL COMMENT 'Ej: Lunes, Martes',
  `start_time` time NOT NULL,
  `end_time` time NOT NULL,
  `classroom` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `semesters`
--

CREATE TABLE `semesters` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `semesters`
--

INSERT INTO `semesters` (`id`, `name`) VALUES
(1, 'Semestre-I'),
(2, 'Semestre-II'),
(3, 'Semestre-III'),
(4, 'Semestre-IV'),
(5, 'Semestre-V'),
(6, 'Semestre-VI');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `users`
--

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `username` varchar(100) NOT NULL,
  `full_name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `role` varchar(50) NOT NULL DEFAULT 'student',
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `users`
--

INSERT INTO `users` (`id`, `username`, `full_name`, `email`, `role`, `password`) VALUES
(1, 'admin', 'Administrador Principal', 'admin@institucion.com', 'admin', '$2y$10$qsuNTVvfLR3srmKZ9oQA4./bNkPvuaON4vbXXdkSq1rj61LcnpOvu'),
(5, 'fredy', 'fredicha', 'fred@gmail.com', 'student', '$2y$10$EiBjDFdPWm.pwv5fsUVH8eGwvitClBAOnVMSxuukOIXFTJh3yFy8.'),
(6, 'frank', 'frankucha', 'frankito@gmail.com', 'student', '$2y$10$4tgSMZxMakEKP9a8gGQWb.nf88hjmjiInLEoTFw6HQFeke4tyC9K2');

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `courses`
--
ALTER TABLE `courses`
  ADD PRIMARY KEY (`id`),
  ADD KEY `courses_ibfk_semester` (`semester_id`);

--
-- Indices de la tabla `enrollments`
--
ALTER TABLE `enrollments`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `user_course_unique` (`user_id`,`course_id`),
  ADD KEY `user_id` (`user_id`),
  ADD KEY `course_id` (`course_id`);

--
-- Indices de la tabla `grades`
--
ALTER TABLE `grades`
  ADD PRIMARY KEY (`id`),
  ADD KEY `enrollment_id` (`enrollment_id`),
  ADD KEY `grades_ibfk_user` (`user_id`),
  ADD KEY `grades_ibfk_course` (`course_id`);

--
-- Indices de la tabla `schedules`
--
ALTER TABLE `schedules`
  ADD PRIMARY KEY (`id`),
  ADD KEY `course_id` (`course_id`);

--
-- Indices de la tabla `semesters`
--
ALTER TABLE `semesters`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `name` (`name`);

--
-- Indices de la tabla `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `courses`
--
ALTER TABLE `courses`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=47;

--
-- AUTO_INCREMENT de la tabla `enrollments`
--
ALTER TABLE `enrollments`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=250;

--
-- AUTO_INCREMENT de la tabla `grades`
--
ALTER TABLE `grades`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=486;

--
-- AUTO_INCREMENT de la tabla `schedules`
--
ALTER TABLE `schedules`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT de la tabla `semesters`
--
ALTER TABLE `semesters`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT de la tabla `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla `courses`
--
ALTER TABLE `courses`
  ADD CONSTRAINT `courses_ibfk_semester` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE;

--
-- Filtros para la tabla `enrollments`
--
ALTER TABLE `enrollments`
  ADD CONSTRAINT `enrollments_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `enrollments_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE;

--
-- Filtros para la tabla `grades`
--
ALTER TABLE `grades`
  ADD CONSTRAINT `grades_ibfk_1` FOREIGN KEY (`enrollment_id`) REFERENCES `enrollments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `grades_ibfk_course` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `grades_ibfk_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Filtros para la tabla `schedules`
--
ALTER TABLE `schedules`
  ADD CONSTRAINT `schedules_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
