GithubHelp home page GithubHelp logo

boribs / schedule-maker Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 110 KB

Un creador de horarios para estudiantes de FCC BUAP.

License: GNU Affero General Public License v3.0

Python 100.00%
python schedule-maker

schedule-maker's Introduction

Creador de horarios

Para la FCC (BUAP)...


¿Cómo usar?

Asegurate de tener instalados tabulate y xlrd:

pip install tabulate xlrd==1.2.0

Simplemente ejecuta schedule.py y pasa el nombre del archivo con las clases. Tiene que ser .xlsx.

python schedule.py classes/p2024.xlsx > schedules.txt

El resultado será un documento con las combinaciones de horario posibles, según los parámetros especificados.

58469  [RI]    Redes Inalambricas              SORIANO - ROSAS JOSE ISABEL
55098  [MdD]   Mineria de Datos                BELTRAN - MARTINEZ BEATRIZ
51821  [AdC]   Arquitectura de Computadoras    MALDONADO - GARCIA ABRAHAM
57340  [DdAM]  Dllo. de Aplicaciones Moviles   ELVIRA - ENRIQUEZ ROBERTO
57690  [TIA]   Tec.de Inteligencia Artificial  OLMOS - PINEDA IVAN
57662  [PCyP]  Progra. Concurrente y Paralela  MENDOZA - OLGUIN GUSTAVO EMILIO

Horario        Lunes    Martes    Miércoles    Jueves    Viernes
-------------  -------  --------  -----------  --------  ---------
07:00 - 07:59
08:00 - 08:59
09:00 - 09:59  MdD                             MdD       MdD
10:00 - 10:59                                  MdD       MdD
11:00 - 11:59  AdC      TIA       TIA          AdC       AdC
12:00 - 12:59  TIA      TIA       TIA          AdC       AdC
13:00 - 13:59
14:00 - 14:59
15:00 - 15:59  DdAM                            DdAM      DdAM
16:00 - 16:59                                  DdAM      DdAM
17:00 - 17:59           PCyP      PCyP
18:00 - 18:59  PCyP     PCyP      PCyP
19:00 - 19:59           RI        RI
20:00 - 20:59  RI       RI        RI

Configuración

Por defecto se busca un archivo llamado schedule-config.json. Si no lo encuentra, crea una plantilla con el siguiente contenido:

{
    "materias": [
        "Materia 1",
        "Materia 2"
    ],
    "sin-profesores": [
        "Profesor 1",
        "Profesor 2"
    ],
    "con-profesores": [
        "Profesor 1",
        "Profesor 2"
    ],
    "sin-cursos" : [
        "nrc1",
        "nrc2"
    ],
    "con-cursos" : [
        "nrc1",
        "nrc2"
    ],
    "sin-horarios": {
        "L": [
            "0700-0859",
            "1300-1459"
        ],
        "A": [
            "0700-0859",
            "1300-1459"
        ],
        "M": [
            "0700-0859",
            "1300-1459"
        ],
        "J": [
            "0700-0859",
            "1300-1459"
        ],
        "V": [
            "0700-0859",
            "1300-1459"
        ]
    }
}

Bajo materias deben ir los nombres de las materias tal cual aparecen en el documento.

En sin-profesores se anotan los profesores no deseados.

En con-profesores se anotan los profesores deseados. Solo se mostrarán horarios con clases de todos los profesores especificados.

En sin-cursos se anotan los NRCs de los cursos no deseados. Esto también puede ser usado para anotar los cursos llenos durante el registro de materias.

En con-cursos se anotan los cursos deseados. Solo se mostrarán horarios que contengan todos los cursos anotados.

En sin-horarios se antonan los horarios no deseados. El formato de las horas debe ser el mismo que usa BUAP: "hhmm-hhmm".

Adicionalmente, se puede especificar una dirección para el archivo de configuración usando el parámetro --config (-c):

python schedule.py data.xlsx -c config.json

Roadmap

✔ Configuración externa.
✔ Especificar NRCs de forma inclusiva y exclusiva.
☐ Dar soporte a PDFs.
☐ Dar soporte a otras facultades.

schedule-maker's People

Contributors

boribs avatar

Watchers

 avatar

Forkers

miguehm

schedule-maker's Issues

Agregar profesor a la blacklist no surte efecto

https://github.com/boribs/schedule-maker/blob/05bcb46cd2061beaf102140a58a0623e21c53a92/schedule.py#L263C9-L267

Describe el bug:
He agregado un nuevo profesor a la blacklist 'BELTRAN - MARTINEZ BEATRIZ'

        prof_blacklist=[
            'SANCHEZ - GALVEZ MARIA EUGENIA',
            'CERON - GARNICA CARMEN',
            'ZACARIAS - FLORES FERNANDO',
            'BELTRAN - MARTINEZ BEATRIZ'
        ],

Pero continua apareciendo en los profesores sugeridos

Comportamiento esperado:
BELTRAN - MARTINEZ BEATRIZ no deberia aparecer en los profesores sugeridos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.