Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LOGO
CURSO
CICLO
INTEGRANTES
FECHA
INDICE
Introducción...................................................1
Desarrollo.......................................................2
Base de Datos...............................................3
Formulario Inicio Sesion.................................4
Formulario Principal.......................................5
File: Conexión.php.........................................6
DESARROLLO
Enunciado
El centro escolar “profe Lennin”, requiere un sistema de control de notas que le permita
llevar de una forma ordenada las calificaciones de sus alumnos, los requisitos
fundamentales son los siguientes:
• El registro de los alumnos debe de ser por salón y por grado.
• El sistema debe de contar al menos con una sección al momento de ser
entregado.
• El sistema debe de ser Escalable de forma sencilla, en grados y secciones.
• El sistema debe de contar con campos para una sola materia al momento de ser
entregado.
• El sistema debe de ser Escalable para poder agregar más materias por grado.
Inscribir alumnos
Formulario 2
El segundo formulario en PHP a ser entregado debe de permitirle al usuario, poder
modificar los campos de los alumnos inscritos, crear campos registros de nuevas notas y
borrar campos.
Formulario para modificar campos
Parte C: "Formulario de visualización"
Formulario 3
El tercer Formulario en PHP a ser entregado debe de permitir al usuario, poder visualizar
las notas de toda una sección de forma completa, y además de los datos existentes en la
base de datos debe de agregar los campos de:
1. Promedio Global de Notas_N: Notas_N_G
2. Promedio de Notas_ N Por alumno: Notas_P_A
3. Promedio de Nota promedio de la clase.
$id_alumno = $_GET['id'];
//consulta de grados
$grados = $conn->prepare("select * from grados");
$grados->execute();
$grados = $grados->fetchAll();
}else{
Die('Ha ocurrido un error');
}
?>
<html>
<head>
<title>Inicio | Registro de Notas</title>
<meta name="description" content="Registro de Notas del Centro Escolar
Profesor Lennin" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="header">
<h1>Registro de Notas - Centro Escolar "Profe Lennin"</h1>
<h3>Usuario: <?php echo $_SESSION["username"] ?></h3>
</div>
<nav>
<ul>
<li><a href="inicio.view.php">Inicio</a> </li>
<li class="active"><a href="alumnos.view.php">Registro de
Alumnos</a> </li>
<li><a href="listadoalumnos.view.php">Listado de Alumnos</a> </li>
<li><a href="notas.view.php">Registro de Notas</a> </li>
<li><a href="listadonotas.view.php">Consulta de Notas</a> </li>
<li class="right"><a href="logout.php">Salir</a> </li>
</ul>
</nav>
<div class="body">
<div class="panel">
<h4>Edición de Alumnos</h4>
<form method="post" class="form" action="procesaralumno.php">
<!--colocamos un campo oculto que tiene el id del alumno-->
<input type="hidden" value="<?php echo $alumno['id']?>"
name="id">
<label>Nombres</label><br>
<input type="text" required name="nombres" value="<?php echo
$alumno['nombres']?>" maxlength="45">
<br>
<label>Apellidos</label><br>
<input type="text" required name="apellidos" value="<?php
echo $alumno['apellidos']?>" maxlength="45">
<br><br>
<label>No de Lista</label><br>
<input type="number" min="1" class="number" value="<?php
echo $alumno['num_lista']?>" name="numlista">
<br><br>
<label>Sexo</label><br><input required type="radio"
name="genero" <?php if($alumno['genero'] == 'M'){ echo "checked";} ?>
value="M"> Masculino
<input type="radio" name="genero" required value="F" <?php
if($alumno['genero'] == 'F') { echo "checked";} ?>> Femenino
<br><br>
<label>Grado</label><br>
<select name="grado" required>
<?php foreach ($grados as $grado):?>
<option value="<?php echo $grado['id'] ?>" <?php
if($alumno['id_grado'] == $grado['id']) { echo "selected";} ?> ><?php echo
$grado['nombre'] ?></option>
<?php endforeach;?>
</select>
<br><br>
<label>Seccion</label><br>
<br><br>
<button type="submit" name="modificar">Guardar
Cambios</button> <a class="btn-link" href="listadoalumnos.view.php">Ver
Listado</a>
<br><br>
<!--mostrando los mensajes que recibe a traves de los
parametros en la url-->
<?php
if(isset($_GET['err']))
echo '<span class="error">Error al editar el
registro</span>';
if(isset($_GET['info']))
echo '<span class="success">Registro modificado
correctamente!</span>';
?>
</form>
</div>
</div>
<footer>
<p>Derechos reservados © 2020</p>
</footer>
</body>
</html>
File: alumnos.view.php
<!DOCTYPE html>
<?php
require 'functions.php';
//Define queienes tienen permiso en este archivo
$permisos = ['Administrador','Profesor'];
permisos($permisos);
//consulta las secciones
$secciones = $conn->prepare("select * from secciones");
$secciones->execute();
$secciones = $secciones->fetchAll();
//consulta de grados
$grados = $conn->prepare("select * from grados");
$grados->execute();
$grados = $grados->fetchAll();
?>
<html>
<head>
<title>Inicio | Registro de Notas</title>
<meta name="description" content="Registro de Notas del Centro Escolar
Profesor Lennin" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="header">
<h1>Registro de Notas - Centro Escolar "Profe Lennin"</h1>
<h3>Usuario: <?php echo $_SESSION["username"] ?></h3>
</div>
<nav>
<ul>
<li><a href="inicio.view.php">Inicio</a> </li>
<li class="active"><a href="alumnos.view.php">Registro de
Alumnos</a> </li>
<li><a href="listadoalumnos.view.php">Listado de Alumnos</a> </li>
<li><a href="notas.view.php">Registro de Notas</a> </li>
<li><a href="listadonotas.view.php">Consulta de Notas</a> </li>
<li class="right"><a href="logout.php">Salir</a> </li>
</ul>
</nav>
<div class="body">
<div class="panel">
<h4>Registro de Alumnos</h4>
<form method="post" class="form" action="procesaralumno.php">
<label>Nombres</label><br>
<input type="text" required name="nombres" maxlength="45">
<br>
<label>Apellidos</label><br>
<input type="text" required name="apellidos" maxlength="45">
<br><br>
<label>No de Lista</label><br>
<input type="number" min="1" class="number" name="numlista">
<br><br>
<label>Sexo</label><br><input required type="radio"
name="genero" value="M"> Masculino
<input type="radio" name="genero" required value="F">
Femenino
<br><br>
<label>Grado</label><br>
<select name="grado" required>
<?php foreach ($grados as $grado):?>
<option value="<?php echo $grado['id'] ?>"><?php
echo $grado['nombre'] ?></option>
<?php endforeach;?>
</select>
<br><br>
<label>Sección</label><br>
<br><br>
<button type="submit" name="insertar">Guardar</button>
<button type="reset">Limpiar</button> <a class="btn-link"
href="listadoalumnos.view.php">Ver Listado</a>
<br><br>
<!--mostrando los mensajes que recibe a traves de los
parametros en la url-->
<?php
if(isset($_GET['err']))
echo '<span class="error">Error al almacenar el
registro</span>';
if(isset($_GET['info']))
echo '<span class="success">Registro almacenado
correctamente!</span>';
?>
</form>
<?php
if(isset($_GET['err']))
echo '<span class="error">Error al guardar</span>';
?>
</div>
</div>
<footer>
<p>Derechos reservados © 2020</p>
</footer>
</body>
</html>
File: functions.php
<?php
//iniciamos la sesion
session_start();
//esta pregunta la debe hacer en todos los archivos para validar que antes
el usuario haya iniciado sesion
if ( isset($_COOKIE["activo"]) && isset($_SESSION['username'])) {
setcookie("activo", 1, time() + 3600);
} else {
http_response_code(403);
header('location:index.php?err=2');
}
//importamos el archivo que contiene la variable de conexion a la base de
datos
require 'conn/connection.php';
?>
File: index.php
<?php
//arreglo con mensajes que puede recibir
$messages = [
"1" => "Credenciales incorrectas",
"2" => "No ha iniciado sesión"
];
?>
<!DOCTYPE html>
<html>
<head>
<title>Login | Registro de Notas</title>
<meta name="description" content="Registro de Notas del Centro Escolar
Profesor Lennin" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="header">
<div class="body">
<div class="panel-login">
<h4>Inicio de Sesion</h4>
<form method="post" class="form" action="login_post.php">
<label>Usuario</label><br>
<input type="text" name="username">
<br>
<label>Contraseña</label><br>
<input type="password" name="password">
<br><br>
<button type="submit">Entrar</button>
</form>
<?php
if(isset($_GET['err']) && is_numeric($_GET['err']) && $_GET['err'] >
0 && $_GET['err'] < 3 )
echo '<span class="error">'.$messages[$_GET['err']].'</span>';
?>
</div>
</div>
<footer>
<p>Derechos reservados © 2020</p>
</footer>
</body>
</html>
File: inicio.view.php
<!DOCTYPE html>
<?php
require 'functions.php';
$permisos = ['Administrador','Profesor','Padre'];
permisos($permisos);
?>
<html>
<head>
<title>Inicio | Registro de Notas</title>
<meta name="description" content="Registro de Notas del Centro Escolar
Profesor Lennin" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="header">
<h1>Registro de Notas - Centro Escolar "Profe Lennin"</h1>
<h3>Usuario: <?php echo $_SESSION["username"] ?></h3>
</div>
<nav>
<ul>
<li class="active"><a href="inicio.view.php">Inicio</a> </li>
<li><a href="alumnos.view.php">Registro de Alumnos</a> </li>
<li><a href="listadoalumnos.view.php">Listado de Alumnos</a> </li>
<li><a href="notas.view.php">Registro de Notas</a> </li>
<li><a href="listadonotas.view.php">Consulta de Notas</a> </li>
<li class="right"><a href="logout.php">Salir</a> </li>
</ul>
</nav>
<div class="body">
<div class="panel">
<h1 class="text-center">Centro Escolar "Profe Lennin"</h1>
<?php
if(isset($_GET['err'])){
echo '<h3 class="error text-center">ERROR: Usuario no
autorizado</h3>';
}
?>
<br>
<hr>
<p class="text-center"><strong>Integrantes GRUPO
5</strong><br><br>José Saúl Rodríguez Guardado<br>Eduardo Antonio Ramirez
Carias<br>Vladimir Alcides Salguero Erazo</p>
<br>
</div>
</div>
<footer>
</html>
File: listadoalumnos.view.php
<?php
require 'functions.php';
$permisos = ['Administrador','Profesor'];
permisos($permisos);
//consulta los alumnos para el listaddo de alumnos
$alumnos = $conn->prepare("select a.id, a.num_lista, a.nombres, a.apellidos,
a.genero, b.nombre as grado, c.nombre as seccion from alumnos as a inner
join grados as b on a.id_grado = b.id inner join secciones as c on
a.id_seccion = c.id order by a.apellidos");
$alumnos->execute();
$alumnos = $alumnos->fetchAll();
?>
<!DOCTYPE html>
<html>
<head>
<title>Listado de Alumnos | Registro de Notas</title>
<meta name="description" content="Registro de Notas del Centro Escolar
Profesor Lennin" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="header">
<h1>Registro de Notas - Centro Escolar "Profe Lennin"</h1>
<h3>Usuario: <?php echo $_SESSION["username"] ?></h3>
</div>
<nav>
<ul>
<li><a href="inicio.view.php">Inicio</a> </li>
<li><a href="alumnos.view.php">Registro de Alumnos</a> </li>
<li class="active"><a href="listadoalumnos.view.php">Listado de
Alumnos</a> </li>
<li><a href="notas.view.php">Registro de Notas</a> </li>
<li><a href="listadonotas.view.php">Consulta de Notas</a> </li>
<li class="right"><a href="logout.php">Salir</a> </li>
</ul>
</nav>
<div class="body">
<div class="panel">
<h4>Listado de Alumnos</h4>
<table class="table" cellspacing="0" cellpadding="0">
<tr>
<th>No
de<br>lista</th><th>Apellidos</th><th>Nombres</th><th>Genero</th><th>Grado</
th><th>Seccion</th>
<th>Editar</th><th>Eliminar</th>
</tr>
<?php foreach ($alumnos as $alumno) :?>
<tr>
<td align="center"><?php echo $alumno['num_lista'] ?
></td><td><?php echo $alumno['apellidos'] ?></td>
<td><?php echo $alumno['nombres'] ?></td><td
align="center"><?php echo $alumno['genero'] ?></td>
<td align="center"><?php echo $alumno['grado'] ?
></td><td align="center"><?php echo $alumno['seccion'] ?></td>
<td><a href="alumnoedit.view.php?id=<?php echo
$alumno['id'] ?>">Editar</a> </td>
<td><a href="alumnodelete.php?id=<?php echo
$alumno['id'] ?>">Eliminar</a> </td>
</tr>
<?php endforeach;?>
</table>
<br><br>
</div>
</div>
<footer>
<p>Derechos reservados © 2020</p>
</footer>
</body>
</html>
File: listadonotas.view.php
<!DOCTYPE html>
<?php
require 'functions.php';
$permisos = ['Administrador','Profesor','Padre'];
permisos($permisos);
//consulta las materias
$materias = $conn->prepare("select * from materias");
$materias->execute();
$materias = $materias->fetchAll();
//consulta de grados
$grados = $conn->prepare("select * from grados");
$grados->execute();
$grados = $grados->fetchAll();
</head>
<body>
<div class="header">
<h1>Registro de Notas - Centro Escolar "Profe Lennin"</h1>
<h3>Usuario: <?php echo $_SESSION["username"] ?></h3>
</div>
<nav>
<ul>
<li><a href="inicio.view.php">Inicio</a> </li>
<li><a href="alumnos.view.php">Registro de Alumnos</a> </li>
<li><a href="listadoalumnos.view.php">Listado de Alumnos</a> </li>
<li><a href="notas.view.php">Registro de Notas</a> </li>
<li class="active"><a href="listadonotas.view.php">Consulta de
Notas</a> </li>
<li class="right"><a href="logout.php">Salir</a> </li>
</ul>
</nav>
<div class="body">
<div class="panel">
<h3>Consulta de Notas</h3>
<?php
if(!isset($_GET['consultar'])){
?>
<p>Seleccione el grado, la materia y la sección</p>
<form method="get" class="form" action="listadonotas.view.php">
<label>Seleccione el Grado</label><br>
<select name="grado" required>
<?php foreach ($grados as $grado):?>
<option value="<?php echo $grado['id'] ?>"><?php
echo $grado['nombre'] ?></option>
<?php endforeach;?>
</select>
<br><br>
<label>Seleccione la Materia</label><br>
<select name="materia" required>
<?php foreach ($materias as $materia):?>
<option value="<?php echo $materia['id'] ?>"><?php
echo $materia['nombre'] ?></option>
<?php endforeach;?>
</select>
<br><br>
<label>Seleccione la Sección</label><br><br>
<?php
if(isset($_GET['consultar'])){
$id_materia = $_GET['materia'];
$id_grado = $_GET['grado'];
$id_seccion = $_GET['seccion'];
?>
<br>
<a href="listadonotas.view.php"><strong><< Volver</strong></a>
<br>
<br>
}
echo '<td
align="center">'.number_format($alumno['promedio'], 2).'</td>';
//echo '<td><a href="notas.view.php?grado='.
$id_grado.'&materia='.$id_materia.'&seccion='.$id_seccion.'">Editar</a>
</td>';
$promediototal +=
number_format($alumno['promedio'], 2);
echo '<td>'. $alumno['observaciones']. '</td>';
?>
</tr>
<?php endforeach;?>
<tr><td colspan="3"><?php
for($i = 0; $i < $num_eval; $i++){
echo '<td><div class="text-center"
id="promedio'.$i .'"><div></td>';
}
?><td align="center"><?php echo
number_format($promediototal / $num_alumnos,2) ?></td></tr>
</table>
<br>
<?php
}
?>
</div>
</div>
<footer>
<p>Derechos reservados © 2020</p>
</footer>
</body>
<script>
<?php
for($i = 0; $i < $num_eval; $i++){
echo 'var values'.$i.' = [];
var promedio'.$i.';
var valor'.$i.' = 0;
var nota'.$i.' = document.getElementsByName("nota'.$i.'");
for(var i = 0; i < nota'.$i.'.length; i++) {
valor'.$i.' += parseFloat(nota'.$i.'[i].value);
}
promedio'.$i.' = (valor'.$i.' / parseFloat(nota'.$i.'.length));
document.getElementById("promedio'.$i.'").innerHTML = (promedio'.
$i.').toFixed(2);';
}
?>
</script>
</html>
File: login_post.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
require 'conn/connection.php';
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
// POST_GET
}
File: logout.php
<?php
session_start();
session_destroy();
header('location:index.php');
?>
File: notadelete.php
<?php
require 'functions.php';
if($_SESSION['rol'] =='Administrador') {
if (isset($_GET['idalumno']) && isset($_GET['idmateria']) &&
is_numeric($_GET['idalumno'])) {
try {
$id_alumno = $_GET['idalumno'];
$id_materia = $_GET['idmateria'];
$alumno = $conn->prepare("delete from notas where id_alumno =
" . $id_alumno . " and id_materia = " . $id_materia);
$alumno->execute();
header('Location: ' . $_SERVER['HTTP_REFERER']);
} catch (PDOException $e) {
echo $e->getMessage();
}
} else {
die('Ha ocurrido un error');
}
}else{
header('location:inicio.view.php?err=1');
}
?>
File: notas.view.php
<!DOCTYPE html>
<?php
require 'functions.php';
//arreglo de permisos
$permisos = ['Administrador','Profesor'];
permisos($permisos);
</head>
<body>
<div class="header">
<h1>Registro de Notas - Centro Escolar "Profe Lennin"</h1>
<h3>Usuario: <?php echo $_SESSION["username"] ?></h3>
</div>
<nav>
<ul>
<li><a href="inicio.view.php">Inicio</a> </li>
<li><a href="alumnos.view.php">Registro de Alumnos</a> </li>
<li><a href="listadoalumnos.view.php">Listado de Alumnos</a> </li>
<li class="active"><a href="notas.view.php">Registro de Notas</a>
</li>
<li><a href="listadonotas.view.php">Consulta de Notas</a> </li>
<li class="right"><a href="logout.php">Salir</a> </li>
</ul>
</nav>
<div class="body">
<div class="panel">
<h3>Registro y Modificación Notas</h3>
<?php
if(!isset($_GET['revisar'])){
?>
<br><br>
<label>Seleccione la Sección</label><br>
<br><br>
<button type="submit" name="revisar" value="1">Ingresar
Notas</button> <a class="btn-link" href="listadonotas.view.php">Consultar
Notas</a>
<br><br>
</form>
<?php
}
?>
<hr>
<?php
if(isset($_GET['revisar'])){
$id_materia = $_GET['materia'];
$id_grado = $_GET['grado'];
$id_seccion = $_GET['seccion'];
?>
<br>
<a href="notas.view.php"><strong><< Volver</strong></a>
<br>
<br>
<form action="procesarnota.php" method="post">
}else {
//extrayendo el numero de evaluaciones para
esa materia seleccionada
for($i = 0; $i < $num_eval; $i++) {
echo '<td><input type="text"
maxlength="5" name="evaluacion' . $i . 'alumno' . $index . '"
class="txtnota"></td>';
}
}
echo '<td
align="center">'.number_format($alumno['promedio'], 2).'</td>';
if(existeNota($alumno['id'],$id_materia,$conn) >
0){
echo '<td><input type="text" maxlength="100"
value="'.$alumno['observaciones'].'" name="observaciones' . $index . '"
class="txtnota"></td>';
}else {
echo '<td><input type="text"
name="observaciones' . $index . '" class="txtnota"></td>';
}
<?php }
?>
<!--mostrando los mensajes que recibe a traves de los
parametros en la url-->
<?php
if(isset($_GET['err']))
echo '<span class="error">Error al almacenar el
registro</span>';
if(isset($_GET['info']))
echo '<span class="success">Registro almacenado
correctamente!</span>';
?>
</form>
<?php
if(isset($_GET['err']))
echo '<span class="error">Error al guardar</span>';
?>
</div>
</div>
<footer>
<p>Derechos reservados © 2020</p>
</footer>
</body>
</html>
File: procesaralumno.php
<?php
if(!$_POST){
header('location: alumnos.view.php');
}
else {
//incluimos el archivo funciones que tiene la conexion
require 'functions.php';
//Recuperamos los valores que vamos a llenar en la BD
$nombres = htmlentities($_POST ['nombres']);
$apellidos = htmlentities($_POST ['apellidos']);
$genero = htmlentities($_POST['genero']);
$numlista = htmlentities($_POST['numlista']);
$idgrado = htmlentities($_POST['grado']);
$idseccion = htmlentities($_POST['seccion']);
File: procesarnota.php
<?php
if(!$_POST){
header('location: alumnos.view.php');
}
else {
//incluimos el archivo para hacer la conexion
require 'functions.php';
//Recuperamos los valores que vamos a llenar en la BD
$id_materia = htmlentities($_POST ['id_materia']);
$id_grado = htmlentities($_POST ['id_grado']);
$id_seccion = htmlentities($_POST ['id_seccion']);
$num_eval = htmlentities($_POST ['num_eval']);
$num_alumnos = htmlentities($_POST['num_alumnos']);
}
if (isset($result)) {
header('location:notas.view.php?grado='.$id_grado.'&materia='.
$id_materia.'&seccion='.$id_seccion.'&revisar=1&info=1');
} else {
header('location:notas.view.php?grado='.$id_grado.'&materia='.
$id_materia.'&seccion='.$id_seccion.'&revisar=1&err=1');
}// validación de registro*/
}