/rankings-cemas

👩🏽‍🎓 Proyecto educativo para el CEMAS para gestionar las calificaciones y crear Ranking de los estudiantes.

Primary LanguageJavaScript

Logo del Centro Educativo Manuel Acevedo Serrano

Ranking Cemas

Este es un proyecto escolar, consiste en crear una App con React, Bootstrap y Firebase. Se requiere ordenar el listado de estudiantes según su calificación y promedio. Estos datos son obtenidos de un JSON desde un reporte de los estudiantes del centro.

Tabla de contenido

Backlog

  • Debe mostrar el listado de estudiantes.
  • Debe tener una barra de búsqueda para filtrar los estudiantes por curso.
  • Debe tener una barra de búsqueda para filtrar los estudiantes por periodo.
  • Debe tener una barra de búsqueda para filtrar los estudiantes por índice.
  • Debe mostrar el listado de estudiantes con su índice académico.
  • Debe mostrar el listado de estudiantes con su índice técnico.
  • Debe mostrar el listado de estudiantes con su índice general.
  • Debe ordenar el listado de estudiantes según su número de lista.
  • Debe ordenar el listado de estudiantes según su índice académico.
  • Debe ordenar el listado de estudiantes según su índice técnico.
  • Debe ordenar el listado de estudiantes según su índice general.
  • Debe obtener la información desde la base de datos del centro educativo.
  • Debe contar con un sistema de inicio de sesión para saber quien usa esta app.

Captura de pantalla

Ranking Cemas

Scripts

En este proyecto puedes correr los siguientes Scripts:

npm install

Para instalar los módulos necesarios de Node.

npm start

Ejecuta la aplicación en el modo de desarrollo.
Abra http://localhost:3000 para visualizarlo en el navegador.

La página se recargará si realiza modificaciones.
También verá cualquier error por la consola.

npm run predeploy

Construye la aplicación para producción en la carpeta build.
Agrupa correctamente React en el modo de producción y optimiza la compilación para obtener el mejor rendimiento.

La compilación se minimiza y los nombres de archivo incluyen los hash.
¡Tu aplicación está lista para salir a producción!

Para mas información visita la sección deployment.

npm run deploy

Publica la aplicación usando GH Pages.

Peticion de los reportes

El primer paso del algoritmo es obtener los reportes por curso y periodo. Por ejemplo 4A:2020-2021.

La siguiente funcion nos sirve para formar la URL para el pedido de reportes:

getReportsURL.js

const getReportsURL = (curso, periodo) => {

   /**
    * @description: Obtener todos los reportes por curso y periodo. 
    * @param	{String}	curso Ejemplo: "4A"
    * @param	{String}	Periodo Ejemplo: "2020-2021"
    * @URL https://cemasapi.herokuapp.com/reportes/boletin/4A:2020-2021:
    * @return  {String}	URL	 String URL .
    */
// code...

};

El hook para gestionar los fecth al API es:

useFetch.js

import { useState, useEffect, useRef } from 'react';

export const useFetch = (url) => {
	// code
}

El componente que hace la peticion y usa el useFetch:

ListaBoletines.js

import { useFetch } from "../hooks/useFetch";
import ItemBoletin from "./ItemBoletin";


export default function ListaBoletines({ url }) {
// code...
}

Colaboradores de este proyecto