2017 © Pedro PelĂĄez
 

library edtubx

Analyseur de l'emploi du temps de l'Université de Bordeaux

image

nquocnghia/edtubx

Analyseur de l'emploi du temps de l'Université de Bordeaux

  • Monday, October 2, 2017
  • by nquocnghia
  • Repository
  • 1 Watchers
  • 0 Stars
  • 30 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

EdtUbx

Cette librairie permet de récupérer l'emploi du temps de différentes filiÚres de l'Université de Bordeaux, de le filtrer en excluant les cours et de l'exporter en format iCalendar (.ics)., (*1)

Build Status, (*2)

Prérequis

L'extension php-xml est requis pour l'usage de cette librairie., (*3)

Installation

Vous pouvez télécharger directement cette librairie depuis la page Releases dans ce dépÎt., (*4)

Vous pouvez aussi l'installer avec Composer. Il suffit de lancer la commande suivante dans le dossier de votre projet:, (*5)

$ composer require nquocnghia/edtubx

Usage

Récupérer tous les URLS des emplois du temps
// cela retourne un array de 4 dimensions
$urls = \QnNguyen\EdtUbxNS\Core\EdtIndex::fetch(); 

// 1st dimension: Licence|Master1|Master2
// 2nd dimension: Semestre1|Semestre2
// 3rd dimension: Série de cours (ie. IN601)
// 4th dimension: <Nom du groupe de TD>|(rien)

// exemple: l'url vers l'emploi du temps du 2Ăš semestre du groupe A1 de la Licence Informatique (IN601)
$url = $urls['Licence']['Semestre2']['IN601']['GROUPE A1']
Télécharger, analyser et export un emploi du temps
use \QnNguyen\EdtUbxNS\Core\EdtUbx;

// Initialiser l'objet EdtUbx
$edt = EdtUbx::makeFromUrl($url);

// ou bien si vous voulez remplacer le nom d'une/des UE(s)
$edt = EdtUbx::makeFromUrl($url, [
    'codeUE1' => 'nouveau nom1',
    'codeUE2' => 'nouveau nom2',
    ...
]);

// Générer un fichier iCalendar (.ics)
$edt->toICS();
Filtrage de l'emploi du temps

Parfois vous auriez des UEs en option ou qui ne vous concernent pas. Vous pouvez donc les exclure de votre emploi du temps pour le rendre plus lisible., (*6)

Cette librairie fournit une structure logique pour effectuer le filtrage:, (*7)

interface IContidion {
    /**
     * @return boolean
     */
    function evaluate(EdtUbxItem $item);
}

// les tests
abstract class PropertyCondition implements ICondition {}
class MatchInString extends PropertyCondition {}
class MatchInArray extends PropertyCondition {}

// les opérateurs logiques
abstract class PolyadicCondition implements ICondition {}
class AndCondition extends PolyadicCondition {}
class OrCondition extends PolyadicCondition {}
class NotCondition extends PolyadicCondition {}

// La classe CF (ConditionFactory) sert à générer les classes
// de la famille ICondition en raccoursissant le syntax.
class CF {
    public static function _string($propertyName, $regexPattern) {}
    public static function _array($propertyName, $regexPattern) {}
    public static function _and(ICondition ...$conditions) {}
    public static function _or(ICondition ...$conditions) {}
    public static function _not(ICondition $condition) {}
}

L'objet de type EdtUbx permet donc de filtrer l'emploi du temps avec la méthode filter(ICondition $condition). Le résultat renvoyé sera la copie filtrée de l'emploi du temps courant., (*8)

Exemple de filtrage

Un étudiant en L3 veut exclure de son emploi du temps: * l'emsemble des cours de l'UE J1IN6012 * tous les TD de l'UE J1IN6011 qui ne sont pas pour le groupe 4, (*9)

// !J1IN6012 && !(J1IN6011 && td && !groupe4))
$filteredEdt = $edt->filter(
        CF::_and(
            CF::_not(CF::_string('code', 'J1IN6012')),
            CF::_not(
                CF::_and(
                    CF::_string('code', 'J1IN6011'),
                    CF::_string('category', 'td( machine)?'),
                    CF::_not(CF::_string('notes', 'groupe( )?4'))
                    // bien lu, parfois le groupe est indiqué dans 'notes'
                    // et non pas dans 'groupes' T_T
                )
            )
        )
);

Dépendances

License

See LICENSE, (*10)

Tweet me @nquocnghia, (*11)

The Versions

02/10 2017

dev-master

9999999-dev

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

02/10 2017

v2.0

2.0.0.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

15/08 2017

v1.3

1.3.0.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

07/09 2016

v1.2

1.2.0.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

16/02 2016

v1.1.3

1.1.3.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

03/02 2016

v1.1.2

1.1.2.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

01/02 2016

v1.1.1

1.1.1.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx

27/01 2016

v1.0

1.0.0.0

Analyseur de l'emploi du temps de l'Université de Bordeaux

  Sources   Download

MIT

The Requires

 

The Development Requires

by Quoc-Nghia Nguyen

edtubx