DEV Community

Cover image for Getting Started - Youtube GIF Maker Using Next.js, Node and RabbitMQ
Raggi
Raggi

Posted on • Edited on

18 6

Getting Started - Youtube GIF Maker Using Next.js, Node and RabbitMQ

Hello everyone,
This Article is the first part of the series Youtube GIF Maker Using Next.js, Node and RabbitMQ. You can find the full project on github and you can also view the app demo.

This article will cover

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 demonstrating the data flow including all the components mentioned above

Sequence Diagram

In the next article in the series, we will start by diving deeper into the backend server

SurveyJS custom survey software

JavaScript UI Libraries for Surveys and Forms

SurveyJS lets you build a JSON-based form management system that integrates with any backend, giving you full control over your data and no user limits. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay