Skip to content

MasterCloudApps-Projects/trainscoding

Repository files navigation

Trainscoding

Trainscoding cover image

Trainscoding is a monorepo project that wants to demostrate how an automated approach would work for a microservices Javascript based application.

This project is the MSc Thesis for Master CloudApps 2020 by Universidad Rey Juan Carlos of Madrid. The current setup exposes a simple distributed architecture with multiple services that get deployed automatically to the cloud. The goal of this project emphasizes in the development side of working with monorepos and its continuous integration, delivery and deployment of all the services and libraries that compose the application.

Trainscoding consists of two libraries that are used to manage code's quality in the whole code base, and two services that are taken as example of how to deal with automation on a monorepo scenario and a distributed landscape.

Trainscoding simplified architecture

Pipeline status

GitHub

Libraries

Publish libraries workflow

Services

Server service workflow
Users service workflow

Development

Prerequisites

  • Docker and Docker-Compose
  • Environment variables (check file template)

Run

Create environment files

$ make create-env

Once the new environment files are created,** you need to fill** in the values for the variables that these files contain.

Run local environment

$ make up

Runs all services available in Trainscoding using Docker Compose and a local instance of Traefik Proxy.

Trainscoding cover image

Check it "live"!

Server endpoint example

Go to: localhost/api/hi to get a hello world message.

Users endpoint example

Go to: localhost/users/login to get a hello world message.

It will spin up all services that are involved in Trainscoding, such as:

  • Trainscoding Server
  • Traincoding Users