IamShafi / Dev-Forum

DevForum is a Next.js 14 fullstack QA platform for developers to ask questions, share knowledge, and engage in a thriving community.

Home Page:https://dev-forum-nine.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DevForum - Full Stack Next.js 14 App

~

DevForum is a Next.js 14 fullstack QA platform for developers to ask questions, share knowledge, and engage in a thriving community.

~

πŸš€ Features

  • πŸ”§ Next.js Server Actions: Leverage the power of Next.js server actions for enhanced backend functionality.
  • πŸ”— Webhooks for Authentication Service: Utilize webhooks for streamlined authentication services.
  • ❓ Ask and Answer Questions: Engage in meaningful discussions by posing questions and providing answers
  • πŸ”– Bookmarking: Save and organize your favorite posts for future reference.
  • 🌐 Global Database Data-Fetching: Efficient data fetching from all models of the database for the search bar.
  • πŸ† Community Badges & Reputation System: Earn badges and build your reputation within the community.
  • πŸ‘€ Views and Voting Mechanism: Track views and enable a robust voting mechanism for content.
  • 🎯 Filter and Pagination: Enjoy filter and pagination features across various pages for easy navigation.
  • πŸ“± Responsive UI:Experience a responsive user interface that adapts to different screen sizes.
  • πŸ” User Authentication: Create a personalized account to fully engage with the community.
  • 🌈 Themes: Switch between light and dark themes for a comfortable viewing experience.
  • 🧭 Multiple Layouts & Grouped Routes: Explore a well-organized interface with multiple layout options and grouped routes.
  • ✨ Form Handling: Efficiently handle forms for seamless user interactions.
  • 🏷️ Tag Browsing: Explore content categorically through an intuitive tag-based browsing system.

πŸ› οΈ Tech Stack

  • πŸš€ Next.js 14: A React framework for building server-rendered applications.
  • 🌐 Tailwind CSS: A utility-first CSS framework for responsive designs.
  • πŸ“˜ TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
  • πŸ” ESLint: Pluggable linting utility for JavaScript and TypeScript.
  • πŸ“¦ MongoDB: Store and manage data efficiently.
  • πŸ“š Mongoose: MongoDB object modeling for Node.js.
  • πŸš€ clerk: Simplify authentication workflows.
  • πŸ”§ hookform/resolver: Webhooks for authentication services.
  • 🎨 Shadcn UI:: Components from the Shadcn UI library.
  • πŸ”€ tailwindcss/typography: Typography plugin for Tailwind CSS.
  • 🌈 prismjs: Syntax highlighting for code blocks.
  • πŸ“ react-hook-form: Forms management for React.
  • πŸ› οΈ zod: A TypeScript-first schema declaration.

πŸ› οΈ Run the project

  • Clone the repository.
  • Install dependency using:
npm install
# or
yarn install
  • Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
  • Open http://localhost:3000 with your browser to see the result.

  • Create a .env.local file in the root directory of the project and add the following environment variables:

# Clerk secrets for api key and webhook
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_CLERK_WEBHOOK_SECRET=

# Clerk routes
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=/

#  Tiny editor
NEXT_PUBLIC_TINY_EDITOR_API_KEY=

# Database
MONGO_DB_URI=

# OpenAI and public secrets
NEXT_PUBLIC_SERVER_URL=http://localhost:3000
OPENAI_API_KEY=

Notes

  • Clerk Authentication: Create a Clerk account here and set the NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY environment variables in the .env.local file. Configure different URLs for Clerk sign-in, sign-up, after sign-in, and after sign-up pages.
  • MongoDB Database: Create a MongoDB database and connect it to the application. Change the MONGO_DB_URI environment variable in the .env.local file.
  • TinyMCE: Create a TinyMCE account here and set the NEXT_PUBLIC_TINY_EDITOR_API_KEY environment variable in the .env.local file.
  • OpenAI API: Create an OpenAI account here and set the OPENAI_API_KEY environment variable in the .env.local file.
  • After deploy, create a new webhook on Clerk, add the endpoint of http://<Your-deployed-link>/api/webhook, set user events, and set the NEXT_CLERK_WEBHOOK_SECRET environment variable in the .env.local file.

About

DevForum is a Next.js 14 fullstack QA platform for developers to ask questions, share knowledge, and engage in a thriving community.

https://dev-forum-nine.vercel.app


Languages

Language:TypeScript 95.0%Language:CSS 4.8%Language:JavaScript 0.2%