npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

webaurion-api

v1.0.8

Published

**WebAurion API** est une bibliothèque Node.js écrite en TypeScript pour interagir avec l'API de WebAurion. Elle permet de récupérer facilement **les notes** et **l'emploi du temps** depuis le site WebAurion en utilisant seulement des requêtes HTTP.

Downloads

668

Readme

WebAurion API

WebAurion API est une bibliothèque Node.js écrite en TypeScript pour interagir avec l'API de WebAurion.
Elle permet de récupérer facilement les notes et l'emploi du temps depuis le site WebAurion en utilisant seulement des requêtes HTTP.


📦 Installation

1. Prérequis

  • Node.js (version 16 ou supérieure recommandée)
  • npm ou yarn

2. Installation

Pour installer la bibliothèque dans votre projet, vous pouvez utiliser la commande suivante :

npm i webaurion-api

2. Utilisation en local avec npm link

Pour utiliser la bibliothèque dans un autre projet sans passer par un registre npm public :

  1. Clonez ce dépôt :

    git clone https://github.com/dd060606/WebAurion-API.git
    cd WebAurion-API
  2. Installez les dépendances :

    npm install
  3. Compilez la bibliothèque :

    npm run build
  4. Créez un lien global :

    npm link
  5. Dans votre projet cible, ajoutez un lien vers la bibliothèque :

    npm link webaurion-api

🛠️ Fonctionnalités

  • Récupération des notes :

    Obtenez facilement vos notes via votre compte WebAurion.

  • Récupération de l'emploi du temps :

    Accédez à votre emploi du temps.

📘 Exemple d'utilisation

1. Importer la bibliothèque

Assurez-vous que la bibliothèque est installée ou liée (voir section Installation).

2. Récupérer l'emploi du temps

import { login } from "webaurion-api";

//Le planning
async function fetchPlanning() {
    const username = "ENTRER VOTRE NOM D'UTILISATEUR";
    const password = "ENTRER VOTRE MOT DE PASSE";

    try {
        const session = await login(username, password);
        const planning = await session.getPlanningApi().fetchPlanning();

        console.log("Mon emploi du temps :", planning);
    } catch (error) {
        console.error(
            "Erreur lors de la récupération de l'emploi du temps :",
            error,
        );
    }
}

fetchPlanning();

3. Récupérer les notes

import { login, noteAverage } from "webaurion-api";

//Les notes
async function fetchNotes() {
    const username = "ENTRER VOTRE NOM D'UTILISATEUR";
    const password = "ENTRER VOTRE MOT DE PASSE";

    try {
        const session = await login(username, password);
        const notes = await session.getNotesApi().fetchNotes();

        console.log("Mes notes: ", JSON.stringify(notes, null, 2));
        console.log("Mes moyennes: ");
        notes.forEach((note) => {
            console.log(note.code + ": " + noteAverage(note.notes));
        });
    } catch (error) {
        console.error("Erreur lors de la récupération des notes :", error);
    }
}

fetchNotes();

📋 Les Types

Les réponses des fonctions renvoient les données récupérées depuis WebAurion au format JSON pour faciliter leur utilisation.

🗓️ L'emploi du temps

L'utilisation de session.getPlanningApi().fetchPlanning() renvoie un tableau du type PlanningEvent qui représente un événement dans l'emploi du temps d'un utilisateur.

type PlanningEvent = {
    id: string; // Identifiant unique de l'événement
    title: string; // Titre de l'événement
    subject: string; // La matière de l'événement (ex: "Mathématiques")
    room: string; // Salle de l'événement
    instructors: string; // Enseignants responsables de l'événement
    learners: string; // Étudiants inscrits à cet événement
    start: string; // Date et heure de début de l'événement
    end: string; // Date et heure de fin de l'événement
    className: string; // Nom de la classe associée (ex: "TP", "COURS")
};

Exemple:

const exampleEvent: PlanningEvent = {
    id: "15447267",
    title: "Mathématiques S1",
    subject: "Mathématiques",
    room: "A2_46 ISEN_DP ROB",
    instructors: "Prof1 / Prof2",
    learners: "CIR1 / CEST1",
    start: "2024-11-19T08:00:00+0100",
    end: "2024-11-19T10:00:00+0100",
    className: "COURS",
};

📝 Les notes

L'utilisation de session.getNotesApi().fetchNotes() renvoie un tableau du type NotesList qui représente un ensemble de notes associées à un code de cours.

type NotesList = {
    code: string; // Code du cours ou de l'évaluation
    notes: Note[]; // Liste des notes associées à ce code
};
type Note = {
    date: string; // Date de la note
    code: string; // Code du cours ou de l'évaluation
    subject: string; // Matière concernée
    note: string; // La note obtenue
    absence: string; // Absence (si applicable)
    description: string; // Appréciation de l'évaluation
    instructor: string; // Enseignant responsable de l'évaluation
};

Exemple:

const exampleNotesList: NotesList = {
    code: "24_CIR1N_A1_S1_PHYSIQUE",
    notes: [
        {
            date: "02/10/2024",
            code: "24_CIR1N_A1_S1_PHYSIQUE",
            subject: "Physique DS1 S1",
            note: "13.00",
            absence: "",
            description: "",
            instructor: "Prof1",
        },
        {
            date: "13/11/2024",
            code: "24_CIR1N_A1_S1_PHYSIQUE",
            subject: "Physique DS2 S1",
            note: "17.00",
            absence: "",
            description: "",
            instructor: "Prof1",
        },
    ],
};

🧪 Tests avec Jest

Ce projet utilise Jest pour effectuer des tests unitaires et fonctionnels. Les tests se trouvent dans le répertoire tests/. Vous pouvez vous inspirer du code dans les tests si besoin.

📂 Répertoire des tests

  • tests/NotesApi.test.ts : Tests pour les fonctionnalités liées à la récupération des notes.
  • tests/PlanningApi.test.ts : Tests pour les fonctionnalités liées à la récupération de l'emploi du temps.
  • tests/Session.test.ts : Tests pour la gestion des sessions utilisateur.
  • tests/Cache.test.ts : Tests pour la vitesse d'exécution des requêtes

🚀 Lancer les tests

npm test

🔧 Configuration du fichier .env

Pour utiliser correctement la bibliothèque et exécuter les tests, vous devez configurer un fichier .env pour stocker vos identifiants de connexion et autres variables sensibles.

📁 Fichier .env

Un fichier exemple est fourni dans le projet : .env-example. Voici les étapes pour le configurer :

  1. Copier le fichier exemple
    Dans le dossier racine du projet, créez un fichier .env à partir de l'exemple fourni :

    cp .env-example .env
  2. Remplir les valeurs

    Ouvrez le fichier .env et complétez les informations nécessaires :

    TEST_USERNAME=votre-identifiant
    TEST_PASSWORD=votre-mot-de-passe
  • TEST_USERNAME : L’identifiant WebAurion utilisé pour les tests.
  • TEST_PASSWORD : Le mot de passe correspondant.

⚠️ Note : Ces informations sont utilisées uniquement dans le cadre des tests et ne doivent pas être partagées publiquement.