/YouTubeClone

Wrote a fully functional video management web application that allows users to post, search, view, and comment on videos using NodeJS and Express as server-side technologies, JavaScript for processing requests as well as interacts with a MySQL database and HTML CSS and handlebars for the frontend.

Primary LanguageCSSMIT LicenseMIT

YouTube Clone👻

Fully functional video management web application that allows users to post, search, view, and comment on videos using NodeJS and Express as server-side technologies, JavaScript for processing requests as well as interacts with a MySQL database and HTML CSS and handlebars for the frontend. Demo:https://youtu.be/XRCpFNJreQc?si=gRQoE0tO4RdO5z-d

Inspiration💥

I embarked on the journey of creating a YouTube clone with the inspiration to build something that people would find not only useful but also easy to use. The idea of providing a platform where users can share and consume video content seamlessly was a driving force for this project.

Learning Experience🤗

Throughout the development process, I had the opportunity to delve into various technologies and concepts. I chose to implement the project using Handlebars, Node.js, and Express.js. This decision allowed me to gain a deep understanding of routing in Express.js and the power of using Handlebars for templating.

One of the most enlightening aspects of the project was learning how to handle asynchronous functions to make API calls. This was crucial for integrating features like video uploads, comments, and real-time interactions. Understanding the intricacies of asynchronous programming opened up new possibilities and significantly enriched my skill set.

Additionally, I dived into database management. I learned how to create scripts for generating a database schema and connecting it to the project. This knowledge proved to be invaluable as it laid the foundation for storing and retrieving video-related data seamlessly.

Building the Project🐢

The project was built with a focus on creating a scalable and maintainable codebase. Leveraging the power of Node.js and Express.js, I structured the application to ensure a clear separation of concerns. Routes were meticulously organized to enhance readability and maintainability, contributing to a robust and well-organized codebase.

Creating a dynamic user interface with Handlebars allowed for the seamless rendering of content, providing an engaging experience for users. Implementing user authentication, video uploads, and comment functionalities were key milestones in bringing the YouTube clone to life.

Challenges Faced🏋️

Undoubtedly, one of the significant challenges I encountered was optimizing the code using middlewares. The process of strategically placing middleware functions to handle specific aspects of the request-response cycle was both challenging and rewarding. It required a deep understanding of the Express.js framework and a keen eye for performance optimization.

Maintaining the overall structure of the framework was another challenge. As the project grew in complexity, keeping the codebase organized and adhering to best practices became crucial. Regular refactoring and adherence to coding standards were essential to overcome this challenge.

In conclusion, the YouTube clone project was a transformative experience. From gaining insights into asynchronous programming and API integrations to optimizing code and maintaining a structured framework, every step of the journey contributed to my growth as a developer.

Build/Run Instructions🦸‍♂️

Build Instructions

  1. npm install

  2. In the application folder create a .env file with the following variables :

     DB_HOST="*****"
    
     DB_USER="*****"
    
     DB_PASSWORD="*****"
    
     PORT="*****"
    
     DB_NAME="*****"
    
  3. npm run builddb

Run Instructions

  1. npm start

Contributing🙇‍♂️

If you would like to contribute to this project, please fork the repository and create a pull request with your changes. Contributions are always welcome!

License📜

This project is licensed under the MIT License - see the LICENSE file for details.

Credits🔥

Contact🦻

For support or inquiries, please contact Juan Estrada.

Version License: MIT