This project is a clone of the popular question-and-answer website Quora, built using the MERN (MongoDB, Express.js, React.js, Node.js) stack. The aim of this project is to replicate the core functionality and design of Quora, providing users with a platform to ask questions, provide answers, engage in discussions, and have a chatting application, with separate roles for admins and users.
-
User Registration and Authentication: Users can create new accounts and log in to the platform, allowing them to access all the features and interact with the application.
-
Ask and Answer Questions: Users can post questions on different topics and provide answers to existing questions. This creates a dynamic community-driven environment for knowledge sharing.
-
Upvoting and Downvoting: Users can upvote or downvote questions and answers based on their relevance and quality. This feature helps to prioritize the most valuable content and enhance the overall user experience.
-
Comments and Discussions: Users can engage in discussions by commenting on questions, answers, and other comments. This promotes conversation and allows users to share additional insights.
-
User Profiles: Each user has a personalized profile where they can view their activity, including questions asked, answers provided, and comments made. User profiles also display relevant information about the user, such as bio, profile picture, and social media links.
-
Search Functionality: Users can search for specific questions or topics using the search feature. This enables users to find relevant content quickly and efficiently.
-
Admin Panel: Admins have access to an admin panel where they can manage user accounts, moderate content, and perform administrative tasks such as deleting inappropriate posts or banning users.
-
Chatting Application: The application includes a real-time chatting feature that allows users to communicate with each other privately or in group chats. Users can send messages, share files, and create chat rooms on specific topics.
-
MongoDB: A NoSQL database used to store user data, questions, answers, comments, and chat messages.
-
Express.js: A web application framework for Node.js used to build the backend API endpoints and handle HTTP requests.
-
React.js: A popular JavaScript library for building user interfaces. React allows for efficient and reusable component-based development, making it ideal for complex web applications like this Quora clone.
-
Node.js: A JavaScript runtime environment used to execute server-side code and handle the backend logic of the application.
-
Redux: A state management library that helps manage the application's global state and facilitates smooth data flow between components.
-
Socket.IO: A library that enables real-time, bidirectional communication between clients and the server, used for implementing the chatting functionality.
To run the App locally, follow these steps:
- Clone the repository: git clone https://github.com/sanketshirsath226/tia
- Navigate to the project directory: cd tia
- Install the dependencies: npm install Set up the environment variables:
- Create a .env file in the root directory of the project.
- Add the necessary environment variables, including MongoDB connection details, JWT secret key, and any other configuration variables required by the project.
- Start the development server: npm start
- Open your browser and visit http://localhost:3000 to view the Quora clone.
This project is licensed under the MIT License. You can find the details in the LICENSE file.
This project was created as part of Tia Hackathon's portfolio and has been recognized with a prestigious prize for its innovative features and overall quality. It serves as a demonstration of full-stack development skills and is not intended for commercial use. The Quora website design and functionality are inspired by the original Quora platform but do not claim to be an exact replica.