Skip to content

khalidkhankakar/codeoverflow

Repository files navigation

Code Overflow

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.

Table of Contents

  1. Features
  2. Tech Stack
  3. Installation
  4. Usage
  5. Contributing
  6. License

Features

  • 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

Tech Stack

  • Frontend: React.js, Next.js
  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Authentication: Clerk
  • Styling: Tailwind CSS
  • Other Tools: Webpack, Babel

Installation

To get started with Code Overflow, follow these steps:

  1. Clone the repository:

    git clone https://github.com/your-username/code-overflow.git
    cd code-overflow
  2. Install dependencies:

    npm install
  3. 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=********************
  4. Start the development server:

    npm run dev

Usage

  1. Register/Login: Sign up or log in using Clerk authentication.
  2. Create Questions: Post programming-related questions.
  3. Submit Answers: Answer questions posted by other users.
  4. Vote: Upvote or downvote questions and answers to help highlight the best content.
  5. Search: Use the advanced search functionality to find specific questions and answers.
  6. Profile: View and manage your user profile.

Contributing

We welcome contributions to Code Overflow! Here's how you can help:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Submit a pull request.

Please ensure your code adheres to the project's coding standards and includes tests for new features or bug fixes.

License

This project is licensed under the MIT License.