Welcome to Paul Leonard's Video Hosting Platform – a bespoke solution designed to provide a seamless, branded video experience. This platform allows Paul Leonard to upload, manage, and share videos exclusively under his brand, ensuring high-quality, uninterrupted viewing for his audience.
- Email: admin@pauleo.com
- Password: admin123
- User Authentication:
- Sign up with email/username and password.
- Email verification for account activation.
- Log in with email and password.
- Password reset feature.
- Video Management:
- Admin can upload videos with titles and descriptions.
- Admin panel for managing uploaded videos.
- Video Playback:
- Users can navigate through video pages.
- Previous and next buttons for seamless video browsing.
- Playback controls (play/pause, volume, seek).
- Brand Customization:
- Boldly indicated business logo on all pages.
- Share button to share video links.
- Node.js: Backend JavaScript runtime environment.
- AWS S3 Bucket: A storage container in Amazon S3 used to store and manage data.
- Express.js: Web application framework for Node.js.
- express-session: Middleware for managing sessions in Express.js.
- connect-mongodb-session: MongoDB session store for 'express-session'.
- MongoDB: NoSQL database for storing user data and video meta-data.
- aws-sdk: AWS JavaScript library for interacting with AWS services.
- Mongoose: MongoDB object modeling tool for Node.js.
- dotenv: Loads environment variables from a .env file.
- JWT: JSON Web Tokens for user authentication.
- bcrypt.js: Library for hashing passwords.
- Multer: Middleware for handling file uploads.
- multer-s3: 'multer' extension for uploading files to Amazon S3.
- Nodemailer: Module for sending emails from Node.js.
- nodemon: Tool to auto-restart Node.js apps on code changes.
- EJS: Embedded JavaScript templates for server-side rendering.
- connect-flash: Middleware for flash messages in Express.js.
video-platform/
├── assets/
├── controllers/
├── middlewares/
├── models/
├── node_modules/
├── routes/
├── views/
├── .env
├── .gitignore
├── app.js
├── ER Diagram
├── package-lock.json
├── package.json
└── README.md
├── vercel.json
- Node.js
- Git
-
Clone the Repository
git clone https://github.com/nullstead/pauleo.git cd pauleo
-
Install Dependencies
npm install
-
Set Up Environment Variables
- Create a
.env
file in the root directory. - Define the following variables:
SESSION_SECRET="Your session secret" GMAIL_USER="gmail account email" GMAIL_PASS="gmail account password" S3_REGION="AWS S3 region" S3_BUCKET="AWS S3 bucket name" S3_ACCESS_KEY_ID="AWS S3 access key id" S3_SECRET_ACCESS_KEY="AWS S3 secret access key" JWT_SECRET="JWT secret"
- Create a
-
Start the Server
nodemon app
-
Access the application in your web browser at http://localhost:3000.
-
Admin Login Navigate to http://localhost:3000/auth/login to access the login page. Use the credentials below;
- Email: admin@pauleo.com
- Password: admin123
-
Upload Videos Once logged in, use the admin dashboard to upload new videos, and manage existing videos.
-
User Registration Navigate to http://localhost:3000/auth/signup to access the user registration page.
-
User Login Navigate to http://localhost:3000/auth/login to access the login page. Use the credentials provided during user registration.
-
View and Share Videos Videos can be viewed at http://localhost:3000/videos/:video_id once logged in, and shared using URLs generated via the dashboard.
To make contributions, Please follow these steps:
- Fork the repository.
- Create a new branch (git checkout -b feature/your-feature).
- Make your changes.
- Commit your changes (git commit -m 'Add your feature').
- Push to the branch (git push origin feature/your-feature).
- Open a pull request.
For any inquiries or issues, please get in touch with admin at johnkponyo@hotmail.com
Thank you for using Paul Leonard's Video Hosting Platform! Your vision, uninterrupted...!