Skip to content

Latest commit

 

History

History
86 lines (62 loc) · 4.16 KB

README.md

File metadata and controls

86 lines (62 loc) · 4.16 KB

calendz's logo

Build status of develop branch Coverage Status
Dependabot status Dependencies status

CALENDZ API


Introduction

Ce repository représente l'API utilisée pour faire le lien entre le front (Vue.js) et la base de données (MongoDB) de calendz.

Ces données étant évidement privées, la (quasi) totalité des routes nécessitent d'être authentifié.

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.
Express 4.16.4 Fast, unopinionated, minimalist web framework for Node.js
Mongoose 5.10.0 Elegant MongoDB object modeling for Node.js
JsonWebToken 8.5.1 Industry standard RFC 7519 method for representing claims securely between two parties.
Mailgun-js 0.22.0 A simple Node.js helper module for Mailgun API.

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

Installation & utilisation

Pré-requis

  • Installer Node 12.18.3 et MongoDB 3.6

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

    NODE_ENV=development
    
    FRONT_URL=http://localhost:8080
    
    APP_PORT=3001
    APP_PORT_TEST=3002
    
    POPULATE=true
    
    DB_HOST=calendz-database
    DB_PORT=27017
    DB_NAME=calendz
    DB_USER=username
    DB_PASSWORD=password
    
    COOKIE_SECRET=imasecret
    COOKIE_SECURE=false
    
    JWT_SECRET=imasecret
    JWT_EXPIRATION=900
    JWT_EXPIRATION_REFRESH=30
    JWT_RAW_TOKEN=imasecret
    
    MAILER_ENABLED=true
    MAILER_API_KEY=aValidKey
    MAILER_DOMAIN=aValidDomain
    MAILER_HOST=api.mailgun.net
    

Lancement

  • Lint : npm run lint (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:mock (insert un jeu de données dans la base afin d'effectuer les tests)
  • Tests : npm run test:coverage (lance l'analyse de la couverture du code)
  • Tests : npm run test:coveralls (upload les résultats du coverage sur coveralls.io)
  • Production : npm run start (lance via node, aucun process manager n'est inclus par défaut)
  • Développement : npm run dev (lance avec nodemon)