Skip to content

s0j0hn/Worker-Shop

Repository files navigation

TypeScript version Node.js version

Resit Worker Shop

Architecture de fait avec Node.js et TypeScript 3.0.

Inclus:

Pour démarrer

Ce projet doit être lancé avec une version LTS de Node.js. Il vous faudra se procurer aussi docker et docker-compose sur votre système d'exploitation et d'initialiser le docker swarm. On part de base qu'il est préférable de lancer ce projet sur un Linux:

https://docs.docker.com/compose/install/#install-compose

https://docs.docker.com/engine/swarm/#swarm-mode-key-concepts-and-tutorial

Le tout sera lancé avec un serveur Redis pour les robots et une base de donné NoSQL Mongodb

https://redis.io/

https://www.mongodb.com/

Scripts de lancements

  • build - Transformer typescript en javascript,
  • run:api - Lance api,
  • run:robot - Lance robot,
  • lint - Tester les fichiers,
  • docker:start - Démarre les conteneurs docker compose
  • docker:stop - Arrete les conteneurs docker compose

Pour télécharger les dépendances on lance la commande:

yarn install

ou

npm install

Example: (Vous pouvez utiliser aussi 'npm')

yarn docker:start

Une fois les dockers lancé et opérationnel nous pouvons démarrer l'API. D'abord il faut transformer le Typescript:

yarn build

Et après (il faut ajouter le paramètre APP_SEED=true pour remplir la database mais seulement la première fois)

APP_SEED=true yarn run:api

Ensuite on peut faire démarrer notre robot/worker. Ils ont besoin d'une position X et Y initial de lancement.

ROBOT_POSITION_X=3 ROBOT_POSITION_Y=1 yarn run:robot

Chaque robot est instancié dans son processus qui se lié à sa queue. Il NE DOIT PAS avoir des robot avec les mêmes positions.

Pour toute modification de port de l'API, address... On va se référer vers le fichier 'src/app/config/config.ts'

Routes

La documentation des routes est disponible après le lancement de l'API sur url(defaut):

http;//localhost:8080/docs

Elle pourra servir de client pour interagir avec l'API. L'utilisateur va se créer un compte ensuite va récupérer son token et l'entrer dans les paramètres Authorize de swagger pour accéder aux autres requetés