A community-driven platform for asking and answering programming questions 💙. Get help, share knowledge, and collaborate with developers from around the world. Explore topics in web development, mobile app development, algorithms, data structures, and more.
-
Ask and Answer Questions:
- Users can post programming questions and receive answers from the community.
- Collaborative environment to share knowledge and solutions.
-
AI-Powered Answers:
- Integrated AI to assist in finding solutions to posted questions.
-
Collections:
- Users can create collections of questions for easy reference.
- Save and organize questions that you find helpful.
-
Badge System:
- Recognize active contributors with a badge system.
- Display badges on user profiles to showcase their contributions.
-
Reputation System:
- Implement a reputation system to highlight active and respected members.
- Users earn reputation points based on their contributions.
-
Dark Mode:
- Enjoy a comfortable browsing experience with a dark mode option.
-
Clerk Authentication:
- Secure user authentication using Clerk for a seamless login experience.
-
MongoDB Aggregation for Filtering:
- Utilize MongoDB aggregation for efficient and powerful question filtering.
-
Global Search:
- Search anything on the platform, including questions, users, and tags.
-
User Tagging:
- Tag users to bring attention to specific questions or discussions.
-
Recommended Algorithm:
- The algorithm recommends similar questions based on users' frequent visits.
- Next.js 14
- Database: MongoDB
- Authentication: Clerk
- Styling: CSS
- scale: CloudFare
Follow these steps to set up the Dev Exchange project locally:
- Pull the Docker image from the Docker Hub:
docker pull nishitbaria/devexchange
Before you begin, ensure you have the following installed on your machine:
- Node.js: Make sure to install Node.js, which includes npm (Node Package Manager).
- MongoDB: Set up a MongoDB database and obtain the connection URL.
git clone https://github.com/Nishitbaria/Dev-Exchange.git cd Dev-Exchange
npm install
- Create a
.env.local
file in the root of the project. - Add the following environment variables and replace the values with your own:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
NEXT_PUBLIC_TINY_EDITOR_API_KEY=
NEXT_CLERK_WEBHOOK_SECRET=
MONGODB_URL=
NEXT_PUBLIC_SERVER_URL=http://localhost:3000/
OPENAI_API_KEY=
NEXT_PUBLIC_GOOGLE_GIMINI_API_KEY=
npm run dev
The application should now be running locally. Visit http://localhost:3000 in your web browser to access Dev Exchange.
To build the project for production, use the following command:
npm run build
npm start
Visit http://localhost:3000 to access the production build locally.