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.
- Project Overview
- Features
- Tech Stack
- Frontend
- Backend
- Installation
- Prerequisites
- Frontend Setup
- Backend Setup
- Usage
- Contributing
- License
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.
- 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.
- 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.
- 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.
Ensure you have the following installed on your system:
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL
-
Clone the repository:
git clone https://github.com/khoido2003/overflow-web.git
-
Install dependencies:
npm install # or yarn install
-
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=
-
Run the development server:
npm run dev # or yarn dev
The backend setup instructions can be found in the backend repository.
Once both the frontend and backend servers are running, you can access the application at http://localhost:3000.
We welcome contributions to Code Overflow! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.
Please ensure your code adheres to our coding standards and includes relevant tests.
This project is licensed under the MIT License. See the LICENSE file for details.