atreib / tracking-env

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tracking Vehicles Application

Study project for tracking vehicles using microsservices, Typescript, Node.js, React, TDD, DDD, MongoDB, Postgres, TypeORM, Mongoose and RabbitMQ (amqplib).

Requirements

Environment setup

Installing RabbitMQ and MongoDB

  • Create a new RabbitMQ container

  • Create our database folder: sudo mkdir -p /opt/digicounter/database

  • Create a new MongoDB container

    • docker run -d --hostname local-mongodb --name local-mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=mongoadmin -v /opt/digicounter/database/mongodb:/data/db mongo:latest
    • See more at https://hub.docker.com/_/mongo
  • Create a new MongoDB Admin Panel container

    • docker run -d --network host --hostname local-mongodb-panel --name local-mongodb-panel -e ME_CONFIG_MONGODB_SERVER=localhost -e ME_CONFIG_MONGODB_ADMINUSERNAME=mongoadmin -e ME_CONFIG_MONGODB_ADMINPASSWORD=mongoadmin mongo-express:latest
    • [!] If it was succesfully created, you can access it at http://localhost:8081/
    • See more at https://hub.docker.com/_/mongo-express

Running the app

  • Use tracking-simulator for simulating vehicle gps tracking data (using rabbitmq queues)
    • yarn run track-vehicle
  • Use tracking-receiver for receipting vehicles gps tracking data and persisting it in our MongoDB
    • yarn start

Business Canvas

Project architecture

About


Languages

Language:TypeScript 72.4%Language:JavaScript 24.8%Language:HTML 2.9%