marcusholmgren / udagram

Udacity - Cloud Developer Nanodegree Program

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Udagram Image Filtering Microservice

GitHub Actions Continuous Integration and Delivery

Travis CI - Docker build Build Status

Udacity - Cloud Developer Nanodegree Program

Architectural decision are recorded

Architectural Decision Records ADR for this microservice architecture are located in the /docs folder.

Monorepo folder structure:

  • proxy-api/ - contains a reverse proxy for the REST API of the Udagram application
  • feed-api/ - contains an REST API for the Udagram Feed application
  • user-api/ - contains an REST API for the Udagram Users application
  • image_filtering/ - contains an image filtering service

Run the server

These projects uses NodeJS

Open a terminal and navigate into the root of your clone of this repository.

  1. cd image_filtering/ - navigate to folder for backend server
  2. npm i - installs the required dependencies
  3. npm run dev - starts the development server

Postman REST collection

The cloud-cdnd-c2-final.postman_collection.json contains sample REST request for interacting with the image filtering microservice.

Run the frontend

Build the client as a Docker image with the tag udagram-client

  1. cd frontend
  2. docker build -t udagram-client .

Run the frontend client with command:
docker run -p 8100:80 udagram-client

Docker Compose

The easiest way to run this application locally is with Docker Compose. Given that you have Docker installed with Docker Compose.

  1. Start
docker-compose up -d
  1. Stop
docker-compose stop
  1. Remove containers
docker-compose rm

Kubernetes

Change directory to the kubernetes/ folder. cd kubernetes

Then run the deploy.sh script to create all the Kubernetes pods from the Deployment and Service YAML files.

. ./deploy.sh

Delete all Kubernetes pods created with Deployment and Service YAML files.

. ./destroy.sh

Screenshots

See the screenshots folder for images from my implementation of the project specification .

About

Udacity - Cloud Developer Nanodegree Program

License:MIT License


Languages

Language:TypeScript 81.2%Language:HTML 6.7%Language:JavaScript 5.3%Language:SCSS 4.5%Language:Shell 1.4%Language:Dockerfile 0.9%