This project aims to develop a bespoke video platform for content creator Paul Leonard, addressing branding issues he encountered with other hosting platforms. The platform allows video uploads exclusively for his brand, providing users with features such as video navigation, sharing, and account management.
- Sign Up & Log In: Users can sign up and log in using their email and password, with account verification and password reset features.
- Video Navigation: Users can navigate through video pages.
- Video Sharing: Users can share links to videos on different pages.
- Video Uploads: Admins can upload videos with titles and descriptions.
- Single Video Display: Each page displays only one video.
- Navigation Buttons: Contains next and previous buttons to navigate between videos. These buttons hide if no further videos are available.
- Control Buttons: Common video control buttons for user interaction.
- Sharing: Share button for users to share the video link.
- Deployed Link: Find the deployed link below
https://paul-leonard-video-platform.onrender.com
-
Clone the repository:
git clone https://github.com/Pablo-Devs/video-platform.git
-
Navigate to the project directory:
cd video-platform
-
Install the dependencies:
npm install
-
Start the application:
npm start
-
Open your browser and go to
http://localhost:3000
- You can change the port based on your preference.
video-platform/
├── controllers/
│ ├── authControllers/
│ │ ├── accountController.js
│ │ ├── loginController.js
│ │ ├── logoutController.js
│ │ └── signupController.js
│ ├── videoControllers/
│ │ ├── fetchVideosController.js
│ │ ├── uploadVideosController.js
│ │ └── videosAnalytics.js
├── middlewares/
│ ├── authMiddlewares.js
│ ├── generateImages.js
│ └── watchTimeMiddleware.js
├── models/
│ ├── analytics.js
│ ├── User.js
│ └── Video.js
├── routes/
│ ├── authRoutes.js
│ ├── fetchVideosRoutes.js
│ ├── videoAnalyticsRoutes.js
│ └── videoUploadRoutes.js
├── public/ # Static files like CSS, JavaScript, and images
│ ├── css/
│ │ └── styles.css
│ │ └── tailwind.css
│ ├── scripts/
│ │ └── admin-signup.js
│ │ └── dashboard.js
│ │ └── forgot-password.js
│ │ └── home.js
│ │ └── login.js
│ │ └── signup.js
│ │ └── videoPage.js
│ ├── icons/
├── views/ # EJS templates for rendering the front-end
│ │ ├── dashboard.ejs
│ │ └── admin-signup.ejs
│ │ └── forgot-password.ejs
│ │ └── home.ejs
│ │ └── index.ejs
│ │ └── login.ejs
│ │ └── signup.ejs
│ │ └── videos.ejs
│ ├── patials/
│ │ ├── header.ejs
│ │ ├── footer.ejs
│ │ └── videoHeader.ejs
├── .gitignore # Files and directories to be ignored by Git
├── .gitattributes # Handle large video files uploaded on github
├── ER-Diagram.png # ER Diagram of Database
├── package.json # Project metadata and dependencies
├── package-lock.json #
├── README.md # Project documentation
└── server.js # Main entry point of the application
└── tailwind.config.js # Tailwind css configuration
-
Fork the repository.
-
Create a new branch (git checkout -b feature-branch).
-
Commit your changes (git commit -am 'Add new feature').
-
Push to the branch (git push origin feature-branch).
-
Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or feedback, please contact Paul Blankson (AKA: Pablo-Devs).
- Instagram: https://www.instagram.com/pablo_devs/