Skip to content

Latest commit

 

History

History
148 lines (109 loc) · 5.14 KB

README.md

File metadata and controls

148 lines (109 loc) · 5.14 KB

Code Overflow

Code Overflow Icon

Welcome to Code Overflow, a modern platform inspired by Stack Overflow, designed to help developers ask and answer coding questions efficiently. This project leverages cutting-edge web technologies to deliver a seamless, user-friendly experience.

Table of Contents

  • Project Overview
  • Features
  • Tech Stack
    • Frontend
    • Backend
  • Installation
    • Prerequisites
    • Frontend Setup
    • Backend Setup
  • Usage
  • Contributing
  • License

Project Overview

Code Overflow aims to be a comprehensive Q&A platform for developers. Users can post questions, provide answers, engage in discussions, and vote on the best solutions. Our platform is built to encourage user engagement and foster a collaborative environment among developers.

Features

  • User Authentication and Authorization: Secure login and registration.
  • Question and Answer Management: Post, edit, and delete questions and answers.
  • Voting and Commenting: Upvote and downvote answers, and add comments.
  • Tagging System: Categorize questions with relevant tags.
  • User Profiles: Track user activities and contributions.
  • Responsive Design: Optimized for both mobile and desktop views.
  • Image Uploading: Easily upload and manage images.

Tech Stack

Frontend

  • Next.js: A React framework for server-side rendering and static site generation.
  • React: A JavaScript library for building user interfaces.
  • Tailwind CSS: A utility-first CSS framework for rapid UI development.
  • Auth.js: A library for secure authentication.
  • TypeScript: A typed superset of JavaScript for better code quality and maintainability.
  • TanStack Query: A powerful data fetching and state management library.

Backend

  • Express.js: A web application framework for Node.js.
  • Node.js: A JavaScript runtime for server-side development.
  • Prisma: An ORM for interacting with PostgreSQL.
  • PostgreSQL: A relational database management system.
  • TypeScript: A typed superset of JavaScript for better code quality and maintainability.
  • Uploadthing: A service for handling image uploads and storage.

Installation

Prerequisites

Ensure you have the following installed on your system:

  • Node.js (v18 or higher)
  • npm or yarn
  • PostgreSQL

Frontend Setup

  1. Clone the repository:

    git clone https://github.com/khoido2003/overflow-web.git
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. Create a .env file in the root of the frontend directory and add the necessary environment variables:

    AUTH_SECRET=
    JWT_EXPIRES_IN=
    JWT_SECRET=
    GOOGLE_CLIENT_ID=
    GOOGLE_CLIENT_SECRET=
    GITHUB_CLIENT_ID=
    GITHUB_CLIENT_SECRET=
    TINY_EDITOR_KEY=
    NEXT_PUBLIC_API_REQUEST_PREFIX=
    DATABASE_URL=
  4. Run the development server:

    npm run dev
    # or
    yarn dev

Backend Setup

The backend setup instructions can be found in the backend repository.

Usage

Once both the frontend and backend servers are running, you can access the application at http://localhost:3000.

Screenshots

1 2 3 4

Contributing

We welcome contributions to Code Overflow! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Commit your changes (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a Pull Request.

Please ensure your code adheres to our coding standards and includes relevant tests.

License

This project is licensed under the MIT License. See the LICENSE file for details.