Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
Presentación...................................................................................................................................................................................................................................... 2
Preparativos...................................................................................................................................................................................................................................... 2
Login.................................................................................................................................................................................................................................................. 7
Roles.................................................................................................................................................................................................................................................. 8
Usuarios............................................................................................................................................................................................................................................. 8
Configuración.................................................................................................................................................................................................................................... 8
Administrativo................................................................................................................................................................................................................................... 8
Docentes............................................................................................................................................................................................................................................ 8
Estudiantes........................................................................................................................................................................................................................................ 8
PPFF................................................................................................................................................................................................................................................... 8
Grados............................................................................................................................................................................................................................................... 8
Paralelas............................................................................................................................................................................................................................................ 8
Asignación......................................................................................................................................................................................................................................... 8
Materia.............................................................................................................................................................................................................................................. 8
Inscripción......................................................................................................................................................................................................................................... 8
Pagos................................................................................................................................................................................................................................................. 8
Kardex................................................................................................................................................................................................................................................ 8
Calificación........................................................................................................................................................................................................................................ 8
Gestión.............................................................................................................................................................................................................................................. 8
Niveles............................................................................................................................................................................................................................................... 8
Turno................................................................................................................................................................................................................................................. 8
Permisos............................................................................................................................................................................................................................................ 8
Reportes............................................................................................................................................................................................................................................ 8
Paginas y recursos............................................................................................................................................................................................................................. 8
Presentación
Presentación del curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
Misión: Aprender desde cero a programar con el lenguaje de programación PHP y el gestor de base de datos MYSQL
Preparativos
Configurar servidores web multiplataforma para trabajar en lenguaje PHP
XAMPP es el paquete de servidores PHP más famoso. Es gratuito e incluye un servidor Apache, una base de datos MariaDB, PHP y el lenguaje de
programación Perl. Con XAMPP, puedes ejecutar páginas web dinámicas, servicios y aplicaciones web localmente. XAMPP incluye phpMyAdmin,
OpenSSL, Webalizer, Mercury Mail Transport System, FileZilla FTP Server, Tomcat y Strawberry Perl Portable.
WAMP Server. XAMPP es un PHP server de código abierto mientras que WAMP Server no lo es. XAMPP está disponible para varios sistemas operativos
mientras que WAMP Server solo está disponible para Windows. WAMP es un acrónimo! Windows Apache MySQL PHP – WAMP. XAMPP tiene más
módulos adicionales porque WAMP solo tiene PhpMyAdmin, Adminer y PhpSysInfo. El problema más grande es la falta de soporte para Pearl. En
cambio, WAMP Server te proporciona no solo MariaDB sino también MySQL.
MAMP signifiqua macOS, Apache, MySQL y PHP. Es el equivalente de XAMPP y WAMP diseñado para macOS, pero también está disponible en
Windows.MAMP se adapta a la arquitectura y el estilo de los sistemas macOS.
EasyPHP es una herramienta para profesionales, no para principiantes. La interfaz es pesada, y el mayor problema es la falta de una consola que informe
sobre el estado del servidor Apache y PHP y las bases de datos. También tendrás que solucionar los problemas técnicos por tu cuenta. Además de poder
ejecutar tu aplicación PHP o script PHP en un servidor localhost, EasyPHP ofrece una opción de servidor web que convierte tu computadora en un
servidor de alojamiento. Gracias a esto, puedes colocar tu sitio web, script o aplicación en un servidor web accesible desde cualquier parte del mundo.
EasyPHP ofrece un entorno de desarrollo aislado donde puedes gestionar, instalar y actualizar componentes. Solo se ejecuta en Windows y admite
Apache, Nginx, PHP y MySQL. Puedes crear un entorno amigable para probar aplicaciones localmente. Su mayor ventaja es que es ligero y portátil, por lo
que puedes ejecutarlo en una unidad USB y trabajar sin instalarlo en una computadora. Luego se lanzará y funcionará a través del puerto USB. Usando
EasyPHP Warehouse, puedes instalar aplicaciones y componentes adicionales, como phpMyAdmin, Virtual Hosts Manager, Xdebug Manager, Code
Sniffer, Mobile, Codeshot, Codiad Web IDE, Laravel Manager o WordPress.
AMPPS es una herramienta producida por Softaculous, y su autoinstalador no podía faltar Es otro acrónimo: Apache, MySQL (o MongoDB), PHP, Pearl (o
Python) y Softaculous.. Como resultado, es una herramienta muy conveniente que brinda más potencial que un servidor PHP tradicional.AMPPS está
disponible para Microsoft Windows, Linux y Mac. La instalación es fácil y rápida, y puedes comenzar a trabajar con el servidor PHP un momento después
de instalar uno de los 350 scripts. El usuario dispone de muchas herramientas integradas, como Apache, MySQL, MongoDB, Perl y Python. AMPPS es una
herramienta para personas que quieren probar sistemas CMS populares y scripts PHP localmente sin comprar un servidor web. Softaculous lo hace
posible y fácil. Es amigable para principiantes. Puedes instalar un servidor PHP, bases de datos MySQL y scripts sin conocimientos técnicos. El
autoinstalador de Softaculous te permite hacerlo instantáneamente sin configuración manual. El proceso está automatizado; solo necesitas elegir un
script y completar algunos campos de formulario simples. AMPPS descargará automáticamente el script, lo descomprimirá, lo instalará en la carpeta
seleccionada y se conectará a la base de datos creada automáticamente. Recibirás direcciones para el sitio web y el panel de administrador. La
desventaja es que la versión básica de AMPPS es limitada: solo puedes acceder a una versión de PHP, que no siempre es la más reciente. Para poder
utilizar todas las capacidades de AMPPS, debes comprar la versión premium, que cuesta $49 por año.
Editor de Código
Un editor de código es una herramienta de software que permite a los desarrolladores escribir y editar el código fuente de los programas. Estos editores pueden
ser tan sencillos como los editores de texto sin formato o tan sofisticados como un entorno de desarrollo integrado (IDE), que ofrece funciones de edición de
código, autocompletado de código, resaltado de sintaxis, y más. Los editores de código ofrecen a los desarrolladores una plataforma para escribir y modificar su
código de forma eficiente. La elección del editor de código más adecuado puede variar dependiendo del lenguaje de programación que estés utilizando, tu flujo
de trabajo, e incluso tus preferencias personales.
Visual Studio Code: es un editor de código gratuito y de código abierto que ha ganado mucha popularidad entre los desarrolladores. Es multiplataforma,
lo que significa que se puede utilizar en Windows, Linux y Mac. VS Code ofrece una gran cantidad de características útiles que lo convierten en una
opción sólida para cualquier desarrollador. Esto incluye un sistema integrado de control de versiones, depuración incorporada, y la capacidad de agregar
extensiones para personalizar el editor según sus necesidades. Además, su interfaz de usuario es limpia y fácil de usar, lo que facilita la edición de código
para los desarrolladores de todos los niveles de experiencia.
Sublime Text: Un Editor de Texto para Desarrolladores Web, es conocido por su rapidez y eficiencia. Este editor de código multiplataforma tiene una
interfaz limpia y una funcionalidad increíblemente rica que se puede ampliar mediante plugins. También ofrece una función de «edición en múltiples
líneas», que permite a los desarrolladores realizar cambios en varias líneas de código al mismo tiempo, lo que puede aumentar la productividad al
trabajar con grandes bases de código.Es conocido por su rapidez y eficiencia, así como por su capacidad para manejar archivos y proyectos de gran
tamaño sin ralentizarse.
Atom: creado por el equipo de GitHub, es un editor de código open-source con una comunidad activa. Su diseño es personalizable, permitiendo a los
desarrolladores adaptarlo a sus preferencias. Además, Atom ofrece integración con Git y GitHub directamente desde su interfaz, facilitando el
seguimiento de cambios. Actualmente el proyecto se encuentra descontinuado, así que ya no tiene más actualizaciones, pero muchos usuarios se
resisten a dejar de utilizarlo.
Notepad++ es un editor de texto online gratuito y ligero que admite multitud de lenguajes de programación. Notepad++ ofrece una gran cantidad de
funciones, entre las que destaca la capacidad de abrir documentos grandes de forma rápida y eficiente. Específicamente diseñado para Windows,
Notepad++ es conocido por su alta eficiencia y rendimiento, permitiendo la edición de grandes archivos de texto sin ralentizar tu sistema. Notepad++ es
una mejora significativa del Bloc de notas tradicional de Windows y ofrece muchas características que son especialmente útiles para los programadores.
Brackets: Brackets es un editor de código open-source enfocado principalmente en el diseño web. Una característica notable es la Vista Previa en Vivo,
que permite a los desarrolladores ver los cambios en su código en tiempo real en su navegador, lo que simplifica el proceso de desarrollo y diseño de
sitios web. Brackets también incluye una función llamada Extracto que permite obtener colores, gradientes, medidas, fuentes y otros elementos de
diseño directamente desde un archivo PSD de Photoshop, una característica invaluable para los diseñadores web. Además, Brackets es extensible, lo que
significa que puede ser personalizado con una variedad de extensiones para adaptarse a tus necesidades individuales como desarrollador. Estas
extensiones pueden proporcionar características adicionales como autocompletado de código, resaltado de sintaxis, formateo de código y mucho más.
JetBrains IntelliJ IDEA. Es un editor de código altamente profesional orientado a Java. Ofrece autocompletado inteligente de código y análisis de calidad,
junto con un potente motor de depuración. Aunque es de pago, IntelliJ IDEA cuenta con una versión Community gratuita. JetBrains IntelliJ IDEA es un
entorno de desarrollo integrado (IDE) de primera línea utilizado por muchos profesionales de desarrollo de software en todo el mundo. Es conocido por
su capacidad para aumentar la productividad de los desarrolladores a través de funciones avanzadas de asistencia de codificación. Una de las
características más destacadas de IntelliJ IDEA es el análisis de código inteligente, que proporciona sugerencias de autocompletado muy precisas y
facilita la navegación rápida y eficiente a través de los archivos de código y clases. La herramienta también es capaz de detectar y sugerir soluciones para
errores de codificación en tiempo real.
Eclipse. Eclipse es un entorno de desarrollo integrado (IDE) utilizado principalmente para desarrollar aplicaciones Java. Sin embargo, con plugins
adicionales, también puede ser utilizado para desarrollar aplicaciones en otros lenguajes de programación. Es open-source y gratuito. Además de Java,
Eclipse ofrece soporte para una variedad de otros lenguajes de programación, como C, C++, Python, Perl, PHP, y más, a través del uso de plugins. Eclipse
destaca por su robusto conjunto de características que incluyen autocompletado de código, resaltado de sintaxis, depurador incorporado y una potente
funcionalidad de refactorización. Su sistema de plugins permite a los desarrolladores personalizar y expandir su funcionalidad para satisfacer las
necesidades específicas de sus proyectos. Además, Eclipse proporciona herramientas para la gestión de versiones de código y la integración con Git, lo
que facilita la colaboración y el seguimiento de los cambios en el código. En resumen, Eclipse es un IDE altamente versátil y extensible que se adapta a
una variedad de necesidades de desarrollo de software.
Un editor de texto es una herramienta que permite a los usuarios crear y editar archivos de texto. Por otro lado, un editor de código es una versión más
avanzada de un editor de texto que ofrece características específicas para facilitar la programación, como el resaltado de sintaxis y el autocompletado de código.
Un IDE (Entorno de Desarrollo Integrado), por otro lado, es un software que proporciona un conjunto completo de herramientas para el desarrollo de software.
Un IDE típicamente incluye un editor de código, una interfaz para el control de versiones, una consola para la ejecución de código, herramientas de depuración,
y a veces incluso un diseñador de interfaces de usuario.
Base de Datos
AdminLTE es una plantilla de diseño de interfaz de usuario (UI, por sus siglas en inglés) basada en Bootstrap para aplicaciones web de administración. Está
diseñada para ser fácil de usar y personalizar, y se utiliza a menudo en proyectos de desarrollo de software para proporcionar una apariencia atractiva y
consistente para las interfaces de administración. AdminLTE incluye una gran cantidad de elementos de diseño, como menús de navegación, barras laterales,
formularios, tablas, botones, iconos y mucho más. También incluye un conjunto de widgets y páginas predefinidos, como páginas de inicio, páginas de inicio de
sesión y páginas de error, que se pueden personalizar fácilmente para adaptarse a las necesidades del proyecto. AdminLTE es una plantilla de código abierto y
está disponible de forma gratuita en su sitio web oficial. Se puede utilizar en proyectos personales o comerciales sin ningún costo, siempre y cuando se cumplan
los términos de la licencia.
Componentes de AdminLTE
AdminLTE ofrece de forma gratuita una amplia variedad de componentes y elementos de diseño que pueden ser utilizados para crear una interfaz de usuario
atractiva y fácil de usar. Algunos de los componentes que ofrece AdminLTE son:
Menús de navegación: permite a los usuarios navegar por las diferentes secciones de la aplicación y acceder a las opciones de configuración y preferencias.
Widgets: son elementos gráficos que muestran información importante de manera clara y concisa, como gráficos, tablas y otros tipos de datos.
Grillas: permiten presentar información de manera ordenada y estructurada en forma de tablas o listas.
Formularios: son elementos que permiten a los usuarios ingresar y enviar datos a la aplicación.
Botones y enlaces: son elementos de acción que permiten a los usuarios realizar tareas específicas, como guardar o eliminar datos.
Iconos: son elementos gráficos utilizados para mejorar la visualización y legibilidad de la interfaz de usuario.
Alertas y mensajes: son elementos que permiten mostrar avisos y mensajes importantes a los usuarios de la aplicación.
Modales: son ventanas emergentes que se muestran encima de la interfaz de usuario principal y permiten presentar contenido adicional o realizar tareas
específicas.
Gráficos y diagramas: son elementos gráficos que permiten visualizar datos y estadísticas de manera atractiva y fácil de entender.
Tablas: son elementos que permiten presentar información de manera estructurada y ordenada en forma de filas y columnas.
Páginas predefinidas: son diseños predefinidos que pueden ser utilizados para crear páginas web de manera rápida y sencilla.
Estilos de diseño: son elementos de diseño que permiten personalizar la apariencia de la interfaz de usuario, como colores, tipografía y otros aspectos
visuales.
Plugins JavaScript: son librerías de código que añaden funcionalidades y efectos visuales a la interfaz de usuario.
Documentación y recursos: son materiales que brindan información y ayuda para el uso y personalización de AdminLTE.
AdminLTE viene con una serie de librerías y plugins JavaScript que añaden funcionalidades y efectos visuales a la interfaz de usuario. Algunos de los plugins que
incluye AdminLTE son:
Bootstrap: es un framework de diseño web que proporciona un conjunto de estilos y componentes para crear sitios y aplicaciones web.
jQuery: es una librería JavaScript que facilita el uso de funciones y efectos en la interfaz de usuario.
Morris.js: es un plugin JavaScript que permite crear gráficos de línea, barras y áreas de manera fácil y rápida.
Flot: es un plugin JavaScript que permite crear gráficos y diagramas en tiempo real.
Sparkline: es un plugin JavaScript que permite crear gráficos pequeños y compactos que muestran datos de manera atractiva.
jQuery Knob: es un plugin JavaScript que permite crear controles giratorios y diales gráficos.
jQuery Slider: es un plugin JavaScript que permite crear controles deslizantes y ruedas de selección.
jQuery Inputmask: es un plugin JavaScript que permite validar y formatear datos de entrada, como números de teléfono y direcciones de correo electrónico.
jQuery Validation: es un plugin JavaScript que permite validar formularios y asegurar que los datos ingresados cumplan con las reglas y criterios establecidos.
jQuery UI: es un conjunto de plugins JavaScript que añaden funcionalidades y efectos visuales a elementos comunes de la interfaz de usuario, como menús,
botones y tabs.
Codigo de config App C:\wamp64\www\sisgestionescolar\app config.php
<?php
define('SERVIDOR', 'localhost');
define('USUARIO', 'root');
define('PASSWORD', '');
define('BD', 'sisgestionescolar');
define('APP_NAME', 'SISTEMA DE GESTIÓN ESCOLAR');
define('APP_URL', 'http://localhost/sisgestionescolar');
define('KEY_API_MAPS', '');
$servidor = "mysql:dbname=" . BD . ";host=" . SERVIDOR;
try {
//Codigo Original
// $pdo = new PDO($servidor, username: USUARIO, password: PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAME utf8"));
// https://www.authenticdesign.co.uk/page/5/
// $pdo = new PDO('mysql:host=myhost.com;dbname=db_name', 'db_user', 'db_password',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
$pdo = new PDO($servidor, USUARIO, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
// echo "conexión exitosa a la base de datos";
}
catch (PDOException $e) {
echo "no se pudo conectar a la base de datos";
}
date_default_timezone_set("America/Bogota") ;
$fechaHora = date(format: 'Y-m-d H:i:s');
//echo '<br>';
$fecha_actual = date(format: 'Y-m-d');
//echo '<br>';
$dia_actual = date(format: 'd');
//echo '<br>';
$mes_actual = date(format: 'm');
//echo '<br>';
$ano_actual = date(format: 'Y');
//echo '<br> hoy es '.$dia_actual.'del mes '.$mes_actual.' del año '.$ano_actual ;
Login
01 Login en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
Contraseña encriptada
12345678 $2y$10$0tYmdHU9uGCIxY1f90W1EuIm54NQ8axowkxL1WzLbqO2LdNa8m3l2
12345 $2y$10$zSJ99LWaKh32rsWib9z9suDd1yFQBDvyNRaq.XMVkl7x9Szk/mdyi
<!-- Mensajes de Alerta -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
Mensajes de Alerta
//Mensaje Básico
var mensaje = '<?= $mensaje; ?>';
alert(mensaje);
Roles
02 Módulo Roles en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
02 Módulo Roles en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
03 Módulo Roles en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
<script>
function preguntar(event) {
event.preventDefault();
Swal.fire({
title: 'Eliminar Registro',
text: '¿Desea eliminar este registro?',
icon: 'question',
showDenyButton: true,
confirmButtonText: 'Eliminar',
confirmButtonColor: '#a5161d',
denyButtonColor: '#270a0a',
denyButtonText: 'Cancelar',
}).then((result) => {
if (result.isConfirmed) {
var form = $('#miFormulario<?= $id_rol; ?>');
form.submit();
Swal.fire('Eliminado', 'Se eliminó el registro', 'success');
}
});
}
</script>
Usuarios
04 Módulo Usuarios en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
04 Módulo Usuarios en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
05 Módulo Usuarios en el curso de Sistemas de gestión escolar con (PHP y MySql) FullStack
En las vistas (layout) C:\wamp64\www\sisgestionescolar\admin\layout\parte1.php se crea el acceso que se visualiza en la barra lateral de navegación
<li class="nav-item">
<a href="#" class="nav-link active">
<i class="nav-icon fas"><i class="bi bi-people-fill"></i></i></i>
<p>
Usuarios
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="<?= APP_URL; ?>/admin/ usuarios" class="nav-link active">
<i class="far fa-circle nav-icon"></i>
<p>Listado de Usuarios</p>
</a>
</li>
</ul>
</li>
VISTAS
index.php que sirve para cargar y mostrar los usuarios (para avanzar rápido, se copia el código del index del modulo de roles C:\wamp64\www\
sisgestionescolar\admin\roles\index.php)
create.php que sirve para crear los usuarios (para avanzar rápido, se copia el código del index del modulo de roles C:\wamp64\www\sisgestionescolar\admin\
roles\create.php) ), aquí incluimos include ('../../app/controllers/roles/listado_de_roles.php'); para listar los roles
Cada vista debe ir acompañada con su correspondiente controlador, el cual se crea en C:\wamp64\www\sisgestionescolar\app\controllers\usuarios, dentro se
crean los archivos:
En C:\wamp64\www\sisgestionescolar\database\db.sql se revisa el código de la tabla usuarios, en este caso se genera la relación entre las tablas usuarios y roles
Configuración
Administrativo
Docentes
Estudiantes
PPFF
Grados
Paralelas
Asignación
Materia
Inscripción
Pagos
Kardex
Calificación
Gestión
Niveles
Turno
Permisos
Reportes
Paginas y recursos
Tema url Ejemplo o aplicación Descripción
Plantilla admin LTE https://github.com/ColorlibHQ/AdminLTE/releases/tag/v3.2.0 https://adminlte.io/themes/v3/
Imágenes https://www.freepik.es/
Mensajes de Alerta https://sweetalert2.github.io/ <script
src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
Incorporar iconos Bootstrap https://icons.getbootstrap.com/#install <link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap-
icons@1.11.3/font/bootstrap-icons.min.css">
Incorporar tablas Bootstrap https://getbootstrap.com/docs/4.6/getting-started/introduction/
v4.6
DataTables https://datatables.net/
Generador de código: https://hilariweb.com/codigos-fuente/generador-de-codigos-crud
Volver a la pagina anterior https://es.stackoverflow.com/questions/82840/volver-a-una-pesta%C3%B1a-de-
javascript una-p%C3%A1gina-anterior
password_hash https://www.php.net/manual/es/function.password-hash
SISTEMA COMPLETO CON TODOS LOS MÓDULOS, más el código fuente y la base de datos con todas su relaciones listo para ejecutarlo en tu
equipo y lo puedas ajustar a la medida que tu necesites para comercializarlo o redistribuirlo.
Desarrollado con FullStack:HTML5, CSS, JAVASCRIPT, BOOTSTRAP, JQUERY, AJAX, ADMINLTE, SWEETALERT2,PHP, MYSQL, GITHUB, TCPDF, DATATABLES,
CHART.JS
¿Qué módulos tiene el SISTEMA DE GESTIÓN ESCOLAR
CON (PHP y MySql) FullStack?
El SISTEMA DE VENTAS tiene los siguientes módulos en el código fuente:
Sistema de login
Sesiones del usuario
Ingreso al Panel Administrador
Datos de la base de datos en el Dashboard
Módulo de Usuarios
Listado de usuarios
Registro de usuarios
Actualización de usuarios
Eliminación de usuarios
Buscador de usuarios
Reporte de usuarios en Excel, PDF
Paginación de tabla
Módulo de Roles
Listado de roles
Registro de rol
Actualización de rol
Eliminación de rol
Buscador de rol
Reporte de roles en Excel, PDF
Paginación de tabla
Módulo de Categorías
Módulo de Almacen
Listado de productos
Registro de productos
Vista de productos
Actualización de productos
Eliminación de productos
Buscador de productos
Reporte de categorías en Excel, PDF
Paginación de tabla
Alerta de stock máximo y stock mínimo
Módulo de Compras
Listado de compras
Registro de productos
Busqueda de productos
Busqueda de proveedores
Vista de compras
Actualización de compras
Eliminación de compras
Buscador de compras
Reporte de compras en Excel, PDF
Paginación de tabla
Módulo de Proveedores
Listado de proveedores
Registro de proveedores
Actualización de proveedores
Eliminación de proveedores
Buscador de proveedores
Reporte de proveedores en Excel, PDF
Paginación de tabla
Módulo de Ventas
Listado de ventas
Registro de ventas
Busqueda de productos
Busqueda de clientes
Registro de clientes
Vista detallada de la venta
Eliminar venta
Factura de venta
Módulo de Clientes
Listado de cliente
Busqueda de clientes
Reporte de clientes en Excel, PDF
Paginación de tabla