DevOverflow is a user-friendly question-answer platform inspired by Stack Overflow. It provides a space for developers to ask questions, share knowledge, and collaborate within a community-driven environment.
- ๐ Secure User Authentication: DevOverflow uses Clerk to ensure secure user authentication. Users can easily register and log in to the platform, guaranteeing data privacy.
-
โ Ask and Answer Questions: Users can post questions and provide answers to inquiries posted by others. This facilitates knowledge sharing and collaboration.
-
๐๐ Voting System: DevOverflow incorporates a voting system where users can upvote or downvote questions and answers. This feature helps identify high-quality content and rewards active contributors.
-
๐ Bookmarking: Users can bookmark questions for later reference, making it easy to track interesting topics and revisit relevant information.
-
๐ User-Friendly Design: The platform boasts an intuitive and user-friendly interface. It ensures easy navigation and a seamless experience for users, whether they're asking questions, searching for answers, or exploring topics.
-
๐ Tag Browsing: Users can explore content by tags, making it effortless to find topics of interest.
-
๐ Advanced Search: DevOverflow offers a powerful search functionality, allowing users to find specific questions and answers by keywords and tags.
- ๐ค Community Page: The community page fosters interaction among users. It encourages active participation and collaboration, creating a sense of belonging within the developer community.
-
๐ป Frontend: Built with Next.js and TypeScript, providing a responsive and efficient user interface.
-
๐ฆ Database: MongoDB is used for storing data, ensuring scalability and flexibility.
-
๐จ Styling: Tailwind CSS is employed for quick and customizable styling.
-
๐ Authentication: Clerk provides secure user authentication.
DevOverflow is deployed on Vercel, ensuring high availability and fast performance for users.
To run DevOverflow locally or deploy it to another environment, you need to set the following environment variables in a .env file:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: Clerk Publishable Key used for client-side user authentication.CLERK_SECRET_KEY: Clerk Secret Key used for server-side user authentication.NEXT_PUBLIC_CLERK_SIGN_IN_URL: The URL where users are redirected after signing in through Clerk.NEXT_PUBLIC_CLERK_SIGN_UP_URL: The URL where users are redirected after signing up through Clerk.NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL: The URL where users are redirected after a successful sign-in action.NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL: The URL where users are redirected after a successful sign-up action.NEXT_PUBLIC_TINY_EDITOR_API_KEY: API Key for integrating the TinyMCE editor for rich text editing.MONGODB_URL: The connection URI for your MongoDB database.NEXT_CLERK_WEBHOOK_SECRET: Secret Key for secure server-to-server communication with Clerk's webhook events.
- Clone the repository:
git clone https://github.com/yashagw/stackoverflow-clone.git - Install dependencies:
npm install - Create a
.envfile and set the required environment variables. - Run the application:
npm run dev
Feel free to contribute to the project or use it as a starting point for your own question-answer platform.
Happy coding! ๐