Code Overflow is a full-featured platform inspired by Stack Overflow, allowing users to ask and answer programming-related questions. It includes comprehensive functionalities like question and answer creation, a voting system, advanced search with robust filtering, user profiles, and secure authentication.
- Question and Answer Creation: Users can create and answer questions.
- Voting System: Upvote and downvote functionality for both questions and answers.
- Answer Submission: Submit answers to questions and view answers from other users.
- Advanced Search: Robust filtering capabilities to find specific questions and answers.
- User Profiles: Detailed user profiles with personal statistics and history.
- Authentication: Secure user authentication via Clerk.
- Database: MongoDB as the database backbone.
- Additional Functionalities:
- Commenting on questions and answers
- Tagging system for questions
- User reputation system
- Frontend: React.js, Next.js
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: Clerk
- Styling: Tailwind CSS
- Other Tools: Webpack, Babel
To get started with Code Overflow, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/code-overflow.git cd code-overflow
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=******************** CLERK_SECRET_KEY=******************** NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up OPENAI_API_KEY=******************** NEXT_PUBLIC_TINY_EDITOR_API_KEY=******************** MONGODB_URL=******************** NEXT_CLERK_WEBHOOK_SECRET=********************
-
Start the development server:
npm run dev
- Register/Login: Sign up or log in using Clerk authentication.
- Create Questions: Post programming-related questions.
- Submit Answers: Answer questions posted by other users.
- Vote: Upvote or downvote questions and answers to help highlight the best content.
- Search: Use the advanced search functionality to find specific questions and answers.
- Profile: View and manage your user profile.
We welcome contributions to Code Overflow! Here's how you can help:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
Please ensure your code adheres to the project's coding standards and includes tests for new features or bug fixes.
This project is licensed under the MIT License.