Code Monkey home page Code Monkey logo

youtube-gif's Introduction

Youtube GIF Maker Using Next.js, Node and RabbitMQ

Dev.to Series - View Details about this project on the Dev.to series

Run locally

  • Rename .env.example to .env
  • Fill missing env variable in node-worker (Google Cloud Storage related secrets)

Run using docker

  • Make sure docker & docker-compose are installed in your system then run
 docker-compose up -d --build

Run without docker

  • Make sure MongoDB & RabbitMQ Server are installed on your machine then run in each of the folders
npm run dev

open http://localhost:3000 in your browser

Overview

Idea

The basic idea of the app is to let users create GIFs from Youtube Videos. Users can do that by defining the url of the youtube video they want to make a GIF from as well as defining the start/end times of the GIF

App Functionalities

  • Create a GIF from a youtube video and the start/end times (range) from the video to make into a GIF
  • Preview the result before doing the actual conversion

System Design

System Components

Each component of the system is responsible for working in isolation and communicating with other components

  • React (Next.js) as the client side
    • Communicates with the backend server to create new gif conversion requests as well as getting information of already created gif conversions
  • Node as a backend server
    • Handles requests from the client as well as dispatching new conversion jobs to the message broker
  • Node as a service worker
    • Will be responsible for executing/processing the conversion jobs
  • RabbitMQ as a message broker
    • Will act as a Task Queue where the backend server will produce tasks to it and the service worker will consume tasks from it
  • MongoDB for datastore
    • Will store information about the GIF conversion jobs
  • Google Cloud Storage for media storage
    • Will be used to store the converted GIFs

Architecture

System Architecture

Sequence Diagram

This is a sequence diagram of the system including all the components mentioned above and their interactions

Sequence Diagram

Check the whole Dev.to Series on this project

youtube-gif's People

Contributors

ragrag avatar

Watchers

James Cloos 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.