klippify.mp4
Welcome to Clippify, a comprehensive and multifaceted project that showcases my mastery of various technologies and skills relevant to the tech industry. This README is designed to provide a detailed insight into the key components and accomplishments of this project, specifically tailored for a tech job recruiter
💻 Frontend • Dir: client
- FFmpeg
- React
- JS
- HTML
- CSS & Tailwind
- Vite
- Cross Origin Isolation Middleware
- Lexical Editor
- Stripe
- OpenAI
👨🏻💻 Backend • Dir: server
- Node
- Express
- EST
- Firebase Firestore
- Firebase Authentication
- Firebase Storage
- Stripe API
- OpenAI API
👾 Machine Learning • Dir: RNN_model
- Tensorflow
- Python
- Numpy
- Pandas
- Firebase ML Integration
-
Mastery of FFMPEG Syntax: Proficient in manipulating media files (mp3, mp4, blob, blob64, URL, data URL) using FFMPEG, showcasing a deep understanding of multimedia processing.
-
Self-trained Neural Network for Video Transcript Extraction: Built a Convolutional Neural Network using TensorFlow, Numpy, Pandas for video transcript extraction, demonstrating expertise in machine learning and natural language processing.
-
OpenAI API Implementation: Successfully integrated the OpenAI API to create a ChatBot, showcasing proficiency in leveraging external APIs for advanced functionality.
-
Authentication and User Data Flow with Firebase: Implemented secure user authentication and managed data flow using Firebase, ensuring a robust and scalable user management system.
-
Live Database with Firebase Changes on Snapshot: Developed a dynamic system that reflects real-time changes in the Firebase database, demonstrating skills in live data synchronization.
-
Lexical Editor for Rich Text Editor State Management: Created a lexical editor for managing rich text editor states, showcasing expertise in front-end development and state management.
-
Stripe API Integration: Implemented Stripe API for payment processing, including setup, proper JSON data fetching, and secure storage of payment information for features like invoices, prices, and subscription states.
-
**Plain CSS Styling: ** Each Page has its own .css file, layout, and position made with flexbox, components styling written inside the page where the component is placed, there are two types of color themes. (#dark, #light)
-
Own Policies and Terms of Use: Drafted and implemented custom policies and terms of use, highlighting a commitment to legal and ethical considerations in software development.
- Code Here : https://github.com/orbant12/Node-Express-Clippify/blob/main/src/assets/videoTrim/videoApp.jsx
- All Video Trimming Components : https://github.com/orbant12/Node-Express-Clippify/tree/main/src/assets/videoTrim
- Jupiter Notebook: https://github.com/orbant12/Automatic_Speech_Recognition-CNN
- Context: https://github.com/orbant12/Node-Express-Clippify/blob/main/src/context/UserAuthContext.jsx
- Login: https://github.com/orbant12/Node-Express-Clippify/blob/main/src/pages/SignIn.jsx
- Registration: https://github.com/orbant12/Node-Express-Clippify/blob/main/src/pages/Login.jsx
- Code Here : https://github.com/orbant12/Node-Express-Clippify/tree/main/src/Css
- Theme Switch: https://github.com/orbant12/Node-Express-Clippify/blob/main/src/App.jsx
To solve this problem, I needed to convert a copy of the mp4 to mp3 and upload it to the storage as two seperate files with the same ID (ID.mp4, ID.mp3). For this solution I have made the storage architecture so every user has his own file named with his UID with these inside - userID/FolderID/FileID/ where ID.mp4, ID.mp3, ID.transcript will take place.
After considering the limitations, I have decided to use CORS Isolation to be able to use FFmpeg for trimming, converting, timeline bar and thubnail extraction.
Needed to manually edit Google Console's header's
Lexical Editor has nummerous extraction methods that is why I choose this technology. Lexical allowed me to extract the content into JSON
I used
-
Clone the repository:
git clone https://github.com/yourusername/your-repo-name.git cd your-repo-name
-
Install dependencies:
npm install
Or visit from your browser at: https://clippify.net
You will need:
- Create a Clippify Account