/calendz-api-calendar

📆 Node API that exposes our school agenda by scrapping it in real-time.

Primary LanguageJavaScript

calendz's logo

Build status of develop branch Coverage Status
Dependabot status Dependencies status

CALENDZ API-CALENDAR


Introduction

Ce repository représente l'API nous permettant de récupérer les cours de notre emploi du temps. Elle est particulière de par le fait qu'elle n'interroge aucune base de données, mais se content de "scrapper" une page web, et de renvoyer les données demandées sous forme de JSON. N'ayant aucun accès à la base de données contenant nos emploi du temps, nous n'avons trouvé aucune meilleur solution que celui-ci.

De plus, cette API a pour but d'être publique, afin de permettre à n'importe quel élève de notre campus de créer sa propre application requierant l'accès aux données de notre emploi du temps (ex: si quelqu'un souhaite développer une application mobile...)

Ecosystème

L'API de calendz est développée avec les frameworks et outils suivants* :

Librairie Version Description
Node.js 12.18.3 Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Adonis.js 4.1 The Node.js Framework highly focused on developer ergonomics, stability and confidence.
Cheerio 1.0.0-rc.3 Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

*(Liste non exhaustive, uniquement les librairies principales sont présentées)

Installation & utilisation

Pré-requis

  • Installer Node 12.18.3

  • CrĂ©er un fichier .env Ă  la source de ce repository contenant les valeurs suivantes (modifiables selon vos besoins)

    NODE_ENV=development
    
    HOST=0.0.0.0
    PORT=3333
    
    APP_NAME=calendz-api-calendar
    APP_URL=http://${HOST}:${PORT}
    # Please generate a new key: 
    # > $ adonis key:generate
    APP_KEY=
    
    REDIS_HOST=calendz-redis
    REDIS_PORT=6379
    REDIS_PASSWORD=password
    

Lancement

  • Lint : npm run lint (analyse la syntaxe du code grâce Ă  ESLint)
  • Lint : npm run lint:fix (corrige la syntaxe du code grâce Ă  ESLint)
  • Tests : npm run test (lance les tests effectuĂ©s lors de l'intĂ©gration continue)
  • Tests : npm run test:coverage (calcule la couverture des tests (et gĂ©nère un rapport html))
  • Production : npm run start (lance via node, aucun process manager n'est inclus par dĂ©faut)
  • DĂ©veloppement : npm run dev (lance en environnement de dĂ©veloppement avec hot-reloading)