### Manual Client Setup Steps Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/README.md Provides an alternative, manual method for setting up the frontend client, including copying environment files, installing dependencies, and starting the client. ```bash cd client cp env.example .env npm install npm run dev ``` -------------------------------- ### Start MongoDB Database Server Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/SETUP_COMPLETE.md Command to initiate the MongoDB daemon. This database server is a prerequisite for the application, as it handles all data storage and retrieval operations. ```bash mongod ``` -------------------------------- ### Manual Server Setup Steps Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/README.md Provides an alternative, manual method for setting up the backend server, including copying environment files, installing dependencies, and starting the server. ```bash cd server cp env.example .env # Edit .env with your API keys npm install npm run dev ``` -------------------------------- ### Start Node.js Server in Development Mode Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/SETUP_COMPLETE.md Commands to navigate into the server directory and launch the Node.js Express backend in development mode. This makes the API endpoints available for the client application. ```bash cd server npm run dev ``` -------------------------------- ### Start React Client in Development Mode Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/SETUP_COMPLETE.md Commands to navigate into the client directory and launch the React Vite frontend application in development mode. This serves the user interface accessible via a web browser. ```bash cd client npm run dev ``` -------------------------------- ### Execute Setup Script Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/README.md Makes the `setup.sh` script executable and then runs it to automate initial project configuration, including copying environment examples. ```bash chmod +x setup.sh ./setup.sh ``` -------------------------------- ### Install Dependencies and Configure Environment for YouTube to Blog Backend Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/README.md These commands guide the user through setting up the backend server. It includes navigating to the server directory, installing necessary Node.js packages, and preparing the environment file for configuration. ```bash cd server npm install cp env.example .env ``` -------------------------------- ### PM2 Process Management Commands Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/README.md Commands for installing PM2 globally, starting the application as a PM2 process with a specified name, configuring PM2 to start automatically on system boot, and saving the current process list for persistence. ```bash npm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 # Using PM2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 # Using PM2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm2 pm install -g pm ``` -------------------------------- ### Resolve Server Startup Issues and Configure Environment Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/TROUBLESHOOTING.md Commands to identify and resolve port conflicts, install missing Node.js dependencies, and set up environment variables for successful server startup. ```bash lsof -i :5001 kill -9 PORT=5002 npm install npm run deps:check cp env.example .env nano .env ``` -------------------------------- ### Install and Check Optional System Dependencies Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/SYSTEM_FIXES_SUMMARY.md Commands to automate the installation of optional dependencies like `yt-dlp` and to check their current installation status. This simplifies the setup process for transcript extraction tools. ```bash npm run deps:install # Install optional dependencies npm run deps:check # Check dependency status ``` -------------------------------- ### Verify MongoDB Database Connection Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/SETUP_COMPLETE.md Commands to connect to the MongoDB shell and list available databases. This confirms that the MongoDB instance is running and accessible, ensuring the application can interact with its data store. ```bash mongosh then show dbs ``` -------------------------------- ### Configure Server Environment Variables Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/SETUP_COMPLETE.md Instructions to set up essential API keys and a JWT secret in the server's .env file. These variables are crucial for the application's functionality, enabling access to external services like YouTube and OpenAI, and securing user sessions. ```env # Get YouTube API key from: https://console.cloud.google.com/ YOUTUBE_API_KEY=your-actual-youtube-api-key # Get OpenAI API key from: https://platform.openai.com/ OPENAI_API_KEY=your-actual-openai-api-key # Generate a secure JWT secret JWT_SECRET=generate-a-secure-random-string ``` -------------------------------- ### Install yt-dlp for Transcript Service Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/DEPLOYMENT_GUIDE.md Command to install the `yt-dlp` Python package, required for the YTtoText transcript service as a fallback for robust video transcription. ```bash # In Dockerfile or server pip install yt-dlp ``` -------------------------------- ### Install and Test yt-dlp for Transcripts Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/DEPLOYMENT_GUIDE.md Commands to install and upgrade `yt-dlp`, and a manual test command to verify its functionality for extracting video subtitles without downloading the video. ```bash pip install --upgrade yt-dlp yt-dlp --write-auto-sub --skip-download VIDEO_URL ``` -------------------------------- ### Initialize Node.js Backend Project with Dependencies Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/TECHNICAL_IMPLEMENTATION.md This snippet provides the necessary bash commands to initialize a new Node.js project, create a 'server' directory, and install essential backend dependencies such as Express, Mongoose, dotenv, cors, helmet, morgan, bcryptjs, and jsonwebtoken. It also includes nodemon for development auto-restarts. ```bash mkdir server && cd server npm init -y npm install express mongoose dotenv cors helmet morgan bcryptjs jsonwebtoken npm install --save-dev nodemon ``` -------------------------------- ### React Frontend Project Initialization Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/TECHNICAL_IMPLEMENTATION.md This bash script outlines the steps to initialize a new React TypeScript project using `create-react-app` and install necessary dependencies like `axios`, `react-router-dom`, `@tanstack/react-query`, and `tailwindcss`. ```bash npx create-react-app client --template typescript cd client npm install axios react-router-dom @tanstack/react-query npm install -D @types/react-router-dom tailwindcss ``` -------------------------------- ### Start Frontend Development Server Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/README.md Navigates to the `client` directory and starts the React frontend application in development mode, typically on port 3000. ```bash cd client npm run dev ``` -------------------------------- ### Install LocatorJS Development Dependencies for React Vite Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/LOCATORJS_SETUP.md This command installs the required development dependencies for LocatorJS, including `@locator/babel-jsx` for Babel integration and `@locator/runtime` for the in-browser functionality, essential for React and Vite projects. ```bash npm install --save-dev @locator/babel-jsx @locator/runtime ``` -------------------------------- ### Install Transcript Extraction Dependencies Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/TROUBLESHOOTING.md Commands to install optional dependencies like `yt-dlp` and `ffmpeg`, which are required for the application's transcript extraction functionality. ```bash npm run deps:install pip install yt-dlp brew install ffmpeg sudo apt install ffmpeg ``` -------------------------------- ### Create Environment Configuration File Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/client/README.md Copies the example environment file to create a local configuration file, which is essential for setting up API endpoints and other variables. ```bash cp env.example .env ``` -------------------------------- ### Start Backend Development Server Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/README.md Navigates to the `server` directory and starts the Node.js backend application in development mode, typically on port 5000. ```bash cd server npm run dev ``` -------------------------------- ### Docker Compose Local Development Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/DEPLOYMENT_GUIDE.md Commands for setting up and running YTtoText locally using Docker Compose, including copying environment templates, editing variables, starting, viewing logs, and stopping services. ```bash # Copy environment template cp .env.example .env # Edit .env with your API keys nano .env # Start all services docker-compose up -d # View logs docker-compose logs -f # Stop services docker-compose down ``` -------------------------------- ### Start Development Server Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/client/README.md Initiates the local development server with hot reload, making the application accessible for testing and development at http://localhost:3000. ```bash npm run dev ``` -------------------------------- ### Test YouTube Video Accessibility Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/DEPLOYMENT_GUIDE.md Provides example YouTube video URLs to test the system's ability to access and process video content, crucial for troubleshooting transcript extraction. ```bash https://www.youtube.com/watch?v=jfKfPfyJRdk # LoFi Girl https://www.youtube.com/watch?v=9bZkp7q19f0 # Gangnam Style ``` -------------------------------- ### Available Project Scripts Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/client/README.md Lists common npm scripts used for various development tasks, including starting the server, building for production, previewing, and linting. ```bash npm run dev npm run build npm run preview npm run lint ``` -------------------------------- ### Example Output: Database Backup Process Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/SYSTEM_FIXES_SUMMARY.md An example of the output from the database backup process, indicating the successful export of documents from different collections and confirming the overall backup creation status. ```text ✅ Exported 2 documents from users ✅ Exported 10 documents from blogposts ✅ Backup created successfully ``` -------------------------------- ### Install Node.js Dependencies Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/client/README.md Installs all required project dependencies using npm, ensuring the development environment is set up correctly. ```bash npm install ``` -------------------------------- ### Start Local MongoDB Server Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/README.md Initiates the local MongoDB daemon process, which is required for the backend to connect to the database. ```bash mongod ``` -------------------------------- ### Restart Application Services Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/TROUBLESHOOTING.md Command to restart the application services, typically used after recovery, maintenance, or configuration changes. This assumes 'npm run dev' starts the necessary application processes. ```bash npm run dev ``` -------------------------------- ### Perform Database Backup and Restore Operations Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/TROUBLESHOOTING.md Commands to create a database backup, list available backup files, and restore the database from a specified backup file. ```bash npm run backup node scripts/backup-database.js create ls -la backups/ npm run restore backups/backup-2024-01-01T10-00-00-000Z.json ``` -------------------------------- ### Verify Server Health Status Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/SETUP_COMPLETE.md A curl command to perform a health check on the backend server. This verifies if the server is running and responding correctly, typically returning a JSON object indicating its status. ```bash curl http://localhost:5000/api/health ``` -------------------------------- ### Enable Debug Mode and Mock Data Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/DEPLOYMENT_GUIDE.md Environment variables `LOG_LEVEL=debug` and `ENABLE_MOCK_DATA=true` to activate detailed logging and use mock data, useful for development and debugging. ```env LOG_LEVEL=debug ENABLE_MOCK_DATA=true # Use mock data for testing ``` -------------------------------- ### Test Frontend and Backend API Connectivity Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/TROUBLESHOOTING.md Commands to verify if the backend server is running and to test specific API endpoints for connectivity and proper response from the frontend. ```bash curl http://localhost:5001/api/health curl http://localhost:5001/api/videos/models curl http://localhost:5001/api/auth/profile ``` -------------------------------- ### Install LocatorJS Development Dependencies Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/AGENTS.md This command installs the necessary development dependencies for LocatorJS, a tool recommended for React projects. It includes @locator/babel-jsx and @locator/runtime to enable enhanced debugging and component inspection capabilities during development. ```bash npm install --save-dev @locator/babel-jsx @locator/runtime ``` -------------------------------- ### Run Basic Integration Test Script Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/server/docs/MIGRATION_SUMMARY.md This command executes a basic integration test script for the application. This test does not require any external API keys to run, making it suitable for initial setup verification. ```bash node scripts/test-integration.js ``` -------------------------------- ### Docker Compose Configuration for Local Development Source: https://github.com/tarantino19/youtube2blogpost-ai-integration/blob/main/TECHNICAL_IMPLEMENTATION.md This `docker-compose.yml` file defines a multi-container Docker environment for the application's local development setup. It orchestrates three services: a MongoDB database, a Node.js backend, and a React frontend. The configuration includes port mappings, environment variables for database connection and application mode, volume mounts for data persistence and code synchronization, and service dependencies to ensure proper startup order. ```yaml version: '3.8' services: mongodb: image: mongo:6 ports: - '27017:27017' environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: password volumes: - mongodb_data:/data/db backend: build: ./server ports: - '5000:5000' environment: - NODE_ENV=production - MONGODB_URI=mongodb://admin:password@mongodb:27017/yttotext?authSource=admin depends_on: - mongodb volumes: - ./server:/app - /app/node_modules frontend: build: ./client ports: - '3000:3000' depends_on: - backend volumes: - ./client:/app - /app/node_modules volumes: mongodb_data: ```