Skip to content

🚀 Calendz's private API built with Node, used for every interaction with our database.

Notifications You must be signed in to change notification settings

ClemLcs/calendz-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

calendz's logo

Build status of develop branch Coverage 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 18.17.1 Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Express 4.18.2 Fast, unopinionated, minimalist web framework for Node.js
Mongoose 7.4.5 Elegant MongoDB object modeling for Node.js
JsonWebToken 9.0.1 Industry standard RFC 7519 method for representing claims securely between two parties.
Nodemailer 6.9.4 Nodemailer is a module for Node.js applications to allow easy as cake email sending.

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

Installation & utilisation

Pré-requis

  • Installer Node 18.13.0 et MongoDB 6.0.3
    • 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
      
      #===========================================
      # If you used sendingblue, keep this section
      #===========================================
      MAILER_ENABLED=true
      MAILER_API_KEY=aValidKey
      MAILER_DOMAIN=aValidDomain
      MAILER_HOST=api.mailgun.net
      
      #==============================================
      # If you used an SMTP Server, keep this section
      #==============================================
      MAILER_ENABLED=true
      MAILER_USE_TLS=true
      MAILER_PORT=4221
      MAILER_HOST=example.com
      MAILER_USER=my@email.com
      MAILER_PASSWD=password
      

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)

About

🚀 Calendz's private API built with Node, used for every interaction with our database.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.5%
  • Other 0.5%