Twitube is a backend-focused project that combines features from popular platforms like Twitter and YouTube. This repository contains the backend implementation, designed to handle various aspects of user management, content creation, media storage, and more.
- User Authentication: Secure user registration and login using JWT (JSON Web Tokens) and bcrypt for password hashing.
- Content Management: Endpoints for users to create, edit, delete, and interact with text posts (tweets) and video content.
- Media Storage: Integration with Cloudinary for seamless media storage and retrieval, handling both images and videos.
- Database Management: Efficient data storage and retrieval using MongoDB, with Mongoose as the ODM (Object Data Modeling) library.
- API Design: RESTful API design with clear and consistent endpoints for various operations.
- Error Handling: Comprehensive error handling and validation to ensure a smooth user experience.
- Scalability: Designed with scalability in mind, allowing the application to handle increasing user load and data volume.
-Models URL -UI
- Node.js: The core runtime for building the backend.
- Express.js: The web application framework used to structure the API.
- MongoDB: A NoSQL database used for storing user data, posts, and media references.
- Mongoose: An ODM for MongoDB, providing a schema-based solution for data modeling.
- JWT: For user authentication and session management.
- Bcrypt: For securely hashing user passwords.
- Cloudinary: For managing media uploads and storage.
- Other Tools: Various middleware and utilities to enhance the functionality and security of the backend.
-
Clone the repository:
git clone http://github.com/devankitmishra/twitube.git
-
Install dependencies:
cd twitube npm install
-
Set up environment variables: Create a .env in root of project and fill in the required values in the .env file using .env.sample file
-
Start the server:
npm run dev
Contributions are welcome! Please fork the repository, create a new branch, and submit a pull request with your changes. Make sure to follow the existing coding standards and write tests for any new features.
This project is licensed under the MIT License. You are free to use, modify, and distribute this software. See the LICENSE file for more details.