Skip to content

msanjeevkumar/webflix

Repository files navigation

webflix

License


📝 Table of Contents

🧐 About

A Microservices architecture implementation using NestJS, The project contains two services (Genres and Movies) utilising PostgreSQL. Each microservice consists basic actions (index, show, insert, and delete)

The minimal fields for Genres are name and description. For Movies, the minimal fields are name, description, release date, Genre(s), duration and rating.

Architecture

Architecture

Project contains mainly 3 parts, API Gateway, MovieService, GenreService. All these 3 are dockerized and dependencies are boostrapped using docker compose files

API Gateway uses Redis as message broker to perform communication with microservices

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Clone Repo

Clone webflix Git repo

git clone https://github.com/msanjeevkumar/webflix.git

Make sure docker is installed on the system

Installing

Currently, we are using Yarn (instead of npm), so make sure you have latest Yarn version installed before running the project:

npm install -g yarn@latest

Install dependencies

yarn install

Start the application by the following command

docker-compose -f "docker-compose.dev.yml" up -d --build

Stop the application by the following command

docker-compose -f "docker-compose.dev.yml" down

Now the application will be running at http://localhost:3000

🔧 Running the tests

yarn test

🎈 Usage

I have added swagger OpenAPI support for the project
Swagger UI can be accessed at http://localhost:3000/swagger

🚀 Deployment

Deployment to heroku is achieved through a bash script currently

bash ./deploy.sh

You can check the project running live at https://webflixapi.herokuapp.com/swaggermov

⛏️ Built Using

✍️ Authors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages