Architecture de fait avec Node.js et TypeScript 3.0.
Inclus:
- TypeScript 3.0,
- TSLint 5,
- Definition de types pour nodejs et autres composants,
- NPM scripts for common operations,
- Redis et Mongodb
- Support docker compose,
- Support de logger
- Operations asynchrone
- Support swagger
- Authentication avec Passport et JWT
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/
build
- Transformer typescript en javascript,run:api
- Lance api,run:robot
- Lance robot,lint
- Tester les fichiers,docker:start
- Démarre les conteneurs docker composedocker: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'
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