How I Built a YouTube Repository Platform for PCS Global

Published on
Arnab Mondal-
7 min read

Overview

Problem Statement

PCS Global Pvt. Ltd. Perennation Computer Solutions Global Pvt. Ltd. is a software development and consulting company based in Kolkata, India. They needed a platform to manage their YouTube playlists and videos, which would allow them to easily organize and share content with their clients and partners. Also other can enlisting their youtube playlist and videos to the platform.

You can check the live site here

The platform needed to have the following features :

  • Authentication && Role Management: The platform should support user registration and login, with different roles like user , employee and admin. Admin should have the ability to manage users and their roles.

  • Playlist Management: Admin should be able to create, update, and delete playlists, as well as add and remove videos from playlists. Users should be able to view and search for playlists, as well as requst to add their playlist to the platform.

  • Category Management: Admin should be able to create, update, and delete categories, as well as add and remove playlists from categories. Users should be able to view and search for categories.

  • Event Management : Admin Should be able to create events discount offers regarding their paid courses ( which are not in the platform that will be redirected to another site ) .

Tech Stack

The platform was built using the following technologies:

  • React: For the frontend. React provides a fast and efficient way to build interactive user interfaces, making it ideal for this project's requirements of playlist and video management.

  • Node.js: For the backend. Node.js offers a scalable and efficient runtime environment for building server-side applications, allowing for seamless integration with the frontend.

  • MongoDB: For the database. MongoDB provides a flexible and scalable NoSQL database solution, which was ideal for storing and managing the platform's data.

  • JWT Authentication: For user authentication, I used JSON Web Tokens (JWTs) to securely authenticate users and authorize access to protected routes. This provided a secure and reliable way to manage user sessions and ensure data privacy.

How the Platform Works

Home Page

As soon as you land on the pcsglobal360 you will see the home page with a simple and clean Ui . Navigation bar at the top with links and a search bar to search for playlists . Also a banner with the latest event and discount offers.As you scroll down you will see carsoul of the latest playlist added .

Sign in / Sign up

To access the platform's features, users need to sign in or sign up. The sign-in page allows users to enter their email and password to log in, while the sign-up page enables new users to create an account by providing their name, email, and password. it has email verification and password reset functionality. and for employee user they need to provide ogranizational email to get verified even after email verification admin needs to approve the employee account because they have acess to some employee speficic courses admin dont want them visible to all the employee .

image

Courses

After login user will be redirected to the courses page where they can see all the courses available in the platform . They can search for courses and filter them by categories . And employee can see the employee specific courses which are not visible to all the users. also private special acess courses this are the private course which can be acessed by selected users only . Courses have druation,description prerequistes , comment section, rating and review section.

Enlist Playlist

in this section full process of enlisting is shown by a beautiiful and responsive component . when user proceeds to enlist their playlist they need to provide the playlist url platform will validate the url if its a correct and valid youtube playlist url and other info regarding the playlist like title,description,thumbnail,category and tags . after that user can submit the playlist to the platform . Admin will review the playlist and approve it to be visible to all the users.

Become A InStructor

This is a simple page explaing the benefits of becoming an instructor in the platform and a form to fill up to become an instructor . After submitting the form admin will review the form and approve the instructor and onboarding process will start.

Help and Support

This is a simple page with a form to fill up for any help and support needed by the user . After submitting the form admin will review the form and get back to the user with the solution.

image

Admin Dashboard

so this was the most complex part to build is has proper securtiy only admin can access the dashboard not only the that every api requst is validated by the admin role and only admin can access the api it has following options

  • Manage Courses: Admin can create, update, and delete courses, as well as add and remove videos from courses. change their catagory or any other details. here comes a cool thing when create or update operation is done fetching the video from the playlist and storing them in the database is done so this is a long running process as Js is single threaded so i used worker threads to do this operation in the background so that the main thread is not blocked and the user can do other operations. also to keep the playlist updated and in sync with the youtube playlist i used cron jobs to fetch the playlist every 24 hours and update the playlist in the database if any new video is added or removed from the playlist so in this we are not hitting the youtube api every time a user requests the playlist.

  • Manage Users: Admin can view and search for users, as well as update their roles and approve employee accounts. also can delete the user.

  • Category Management: Admin can create, update, and delete categories, as well as add and remove playlists from categories. Also proper verification is done so that the category is not deleted if it has any playlist in it.

  • Event Management: Admin can create, update, and delete events, as well as add and remove courses from events. Also proper validation is done so that user does not create two overlapping events.

Conclusion

Building the YouTube repository platform for PCS Global was a rewarding challenge that integrated React, Node.js, and MongoDB to create a seamless user experience. Key features included JWT authentication for secure access, efficient playlist management, and an intuitive admin dashboard.

The project utilized worker threads and cron jobs for background processing, enhancing performance without disrupting user interactions. This platform not only fulfills the client's needs but also sets the stage for future scalability.

Check out the live project here.