Giter Site home page Giter Site logo

marcelo-cardozo / nd9990-c3-microservices-v1 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 26.86 MB

This repository is associated with Cloud Developer ND - Course 03 - Monolith to Microservices

JavaScript 5.51% TypeScript 80.70% HTML 7.43% CSS 5.00% Shell 0.20% Dockerfile 1.15%

nd9990-c3-microservices-v1's Introduction

nd990-c3-microservices-v1

This repository is associated with Cloud Developer ND - Course 03 - Monolith to Microservices. There are 6 lessons in this course. There is separate directory for each lesson.

All the lessons are located in the lessons folder.

The final project uses the projects built throughout the lessons and are deployed to AWS through Travis CI.

About the Project - Udagram Image Filtering Microservice

Udagram is a simple cloud application developed alongside the Udacity Cloud Engineering Nanodegree. It allows users to register and log into a web client, post photos to the feed, and process photos using an image filtering microservice. Following are the services involved in this project:

  • “user” - allows users to register and log into a web client,
  • “feed” - allows users to post photos, and process photos using image filtering
  • “frontend” - acts as an interface between the user and the backend-services
  • "reverseproxy" - For resolving multiple services running on same port in separate containers

Correspondingly, the project is split into following parts:

  1. The RestAPI Feed Backend, a Node-Express feed microservice.
  2. The RestAPI User Backend, a Node-Express user microservice.
  3. The Simple Frontend - A basic Ionic client web application which consumes the RestAPI Backend.
  4. Nginx as a reverse-proxy server, when different backend services are running on the same port, then a reverse proxy server directs client requests to the appropriate backend server and retrieves resources on behalf of the client.

Clone the project GitHub repository

Create a project folder in your local computer and clone the following Git repository - https://github.com/marcelo-cardozo/nd990-c3-microservices-v1

Dependencies and Getting Setup

tip: this frontend is designed to work with the RestAPI backends. It is recommended you stand up the backend first, test using Postman, and then the frontend should integrate.

1. Installing Node and NPM

This project depends on Nodejs and Node Package Manager (NPM). Before continuing, you must download and install Node (NPM is included) from https://nodejs.com/en/download. Verify the installation of Node.js using following command in your "terminal" / "cmd":

node -v

Verify the installation of NPM and update:

npm -v
npm update

How to Install project dependencies using NPM

This project uses NPM to manage software dependencies. NPM Relies on the package.json file located in the root of this repository. After cloning, open your terminal and run:

npm install

tip: npm i is shorthand for npm install

2. Installing Ionic Cli

The Ionic Command Line Interface is required to serve and build the frontend. Instructions for installing the CLI can be found in the Ionic Framework Docs. When we would configure and start the backend services, then the frontend server can be started using following command in the terminal:

ionic serve

3. AWS RDS - PostgreSQL instance, Postbird tool, and an S3 bucket

You'll need an AWS account to set up these resources. Create the PostgreSQL instance on AWS and install the Postbird tool to interact remotely with the database. Additionally, you'll need to create an S3 filestore bucket in AWS

4. Docker Desktop

Lesson 3 of this course would require you to install Docker Desktop to create containers for individual microservices. Refer the following links for instructions

5. Kubernetes

Lesson 4 of this course would require you to install any one tool for creating a Kubernetes cluster - KubeOne / Minikube / kubectl on top of Docker Desktop. Refer - Creation of Kubernetes Cluster

6. Travis CI

Lesson 6 of this course would require you to use Travis CI. You would have to sign-up on Travis-ci.com using your GitHub account credentials and then create a .travis.yml for your project. Refer this tutorial to get started with Travis CI.

nd9990-c3-microservices-v1's People

Contributors

marcelo-cardozo avatar sudkul avatar dependabot[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.