The Video Sensitivity Processor is a full-stack application designed to process and manage video content with sensitivity analysis. It includes a backend built with Node.js and Express, and a frontend developed using React and Vite. The application leverages MongoDB for data storage and integrates with third-party services like Supabase and Fluent-FFmpeg for additional functionality.
- User authentication and session management
- Video upload and processing
- Sensitivity analysis for video content
- Real-time updates using Socket.IO
- RESTful API for backend services
- Responsive and modern frontend design
- Node.js: JavaScript runtime for building scalable server-side applications.
- Express: Web framework for building RESTful APIs.
- MongoDB: NoSQL database for data storage.
- Supabase: Integration for additional backend services.
- Fluent-FFmpeg: Video processing library.
- Socket.IO: Real-time communication.
- React: JavaScript library for building user interfaces.
- Vite: Build tool for modern web applications.
- Tailwind CSS: Utility-first CSS framework.
- src/: Contains the main application logic.
- api/v1/controllers/: Controllers for handling API requests.
- api/v1/middlewares/: Middleware for request validation and rate limiting.
- api/v1/routes/: API route definitions.
- config/: Configuration files for database, keys, and services.
- models/: Mongoose models for database schemas.
- services/: Service layer for business logic.
- utils/: Utility functions.
- uploads/: Directory for uploaded files.
- temp/: Temporary storage for processing files.
- src/: Contains the main application logic.
- components/: Reusable UI components.
- pages/: Page-level components for routing.
- services/: API client and service functions.
- utils/: Utility functions.
- assets/: Static assets like CSS and images.
- Node.js: Ensure Node.js is installed on your system.
- MongoDB: Install and configure MongoDB for data storage.
- FFmpeg: Install FFmpeg globally for video processing.
- Clone the repository:
git clone <repository-url>
- Navigate to the backend folder and install dependencies:
cd backend npm install - Navigate to the frontend folder and install dependencies:
cd frontend npm install - Install FFmpeg globally:
- On Windows:
- Download FFmpeg from the official website.
- Extract the files and add the
binfolder to your system's PATH.
- On macOS:
brew install ffmpeg
- On Linux:
sudo apt update sudo apt install ffmpeg
- On Windows:
- Start the backend server:
npm run dev
- Start the frontend development server:
npm run dev
- POST /api/v1/auth/login: User login.
- POST /api/v1/auth/register: User registration.
- POST /api/v1/auth/forgot-password: Request password reset.
- POST /api/v1/auth/reset-password: Reset password.
- POST /api/v1/videos/upload: Upload a video for processing.
- GET /api/v1/videos/:id: Get video details.
- DELETE /api/v1/videos/:id: Delete a video.
- GET /api/v1/utils/status: Check server status.
The Video Sensitivity Processor allows users to upload videos, analyze their sensitivity, and manage video content efficiently. The application provides a user-friendly interface and robust backend services.
- Authentication: Secure login and registration.
- Video Upload: Upload videos for sensitivity analysis.
- Real-Time Updates: Get real-time updates on video processing status.
- Video Management: View, delete, and manage uploaded videos.
- Login/Register: Create an account or log in to access the application.
- Upload Video: Navigate to the upload section and select a video file.
- View Results: Once processed, view the sensitivity analysis results.
- Manage Videos: Use the dashboard to manage your uploaded videos.
- Node.js: Handles server-side logic and API endpoints.
- Express: Framework for building RESTful APIs.
- MongoDB: Stores user data, video metadata, and processing results.
- FFmpeg: Processes video files for sensitivity analysis.
- Socket.IO: Enables real-time communication between the server and clients.
- React: Provides a dynamic and responsive user interface.
- Vite: Ensures fast builds and hot module replacement.
- Tailwind CSS: Simplifies styling with utility-first CSS classes.
- Video Processing: Assumes FFmpeg is installed globally and accessible via the system PATH.
- Database: MongoDB is used for its flexibility and scalability.
- Authentication: JWT-based authentication is implemented for security.
- Real-Time Updates: Socket.IO is used to provide real-time feedback to users.
- Frontend Framework: React was chosen for its component-based architecture and developer-friendly ecosystem.
- Node.js
- MongoDB
- Clone the repository.
- Navigate to the backend folder and install dependencies:
cd backend npm install - Navigate to the frontend folder and install dependencies:
cd frontend npm install - Start the backend server:
npm run dev
- Start the frontend development server:
npm run dev
Contributions are welcome! Please fork the repository and submit a pull request.
This project is licensed under the MIT License.