Skip to content

mjvi-odoo/public-repo-9448

Repository files navigation

Phoenix - Next.js 14 Forum


Problem Statement : StackIt – A Minimal Q&A Forum Platform


Team Information


Platform Overview

StackIt is a minimal question-and-answer platform that supports collaborative learning and structured knowledge sharing. It's designed to be simple, user-friendly, and focused on the core experience of asking and answering questions within a community.


User Roles & Permissions

Guest

  • View all questions and answers

User

  • Register and log in
  • Post questions and answers
  • Vote on content

Admin

  • Moderate content
  • Full platform oversight

Core Features (Must-Have)

1. Ask Question

Users can submit new questions with:

  • Title – Short and descriptive
  • Description – Written using a rich text editor
  • Tags – Multi-select input (e.g., React, JWT)

2. Rich Text Editor Features

The description editor should support:

  • Bold, Italic, Strikethrough
  • Numbered lists, Bullet points
  • Emoji insertion
  • Hyperlink insertion (URL)
  • Image upload
  • Text alignment – Left, Center, Right

3. Answering Questions

  • Users can post answers to any question
  • Answers can be formatted using the same rich text editor
  • Only logged-in users can post answers

4. Voting & Accepting Answers

  • Users can upvote or downvote answers
  • Question owners can mark one answer as accepted

5. Tagging

  • Questions must include relevant tags

6. Notification System

  • A notification icon (bell) appears in the top navigation bar
  • Users are notified when:
    • Someone answers their question
    • Someone comments on their answer
    • Someone mentions them using @username
  • The icon shows the number of unread notifications
  • Clicking the icon opens a dropdown with recent notifications

🌐 Live

Explore the live demonstration of the project: nextjs14-forum

📝 Description

Phoenix is an intricate Next.js 14 application that functions as a comprehensive Q&A platform designed for developers. It enables users to pose questions, disseminate knowledge, and engage in collaborative learning.

Folder Structure
forum/
├── app/
├   ├── favicon.ico
├   ├── globals.css
├   ├── layout.tsx
├   ├── (auth)/
├   ├   ├── onboarding/
├   ├   ├   └── page.tsx
├   ├   ├── sign-in/[[...sign-in]]/
├   ├   ├   └── page.tsx
├   ├   ├── sign-up/[[...sign-up]]/
├   ├   ├   └── page.tsx
├   ├   └── layout.tsx
├   ├── (root)/
├   ├   ├── layout.tsx
├   ├   ├── (home)/
├   ├   ├   ├── loading.tsx
├   ├   ├   └── page.tsx
├   ├   ├── ask-question/
├   ├   ├   ├── loading.tsx
├   ├   ├   └── page.tsx
├   ├   ├── collection/
├   ├   ├   ├── loading.tsx
├   ├   ├   └── page.tsx
├   ├   ├── community/
├   ├   ├   ├── loading.tsx
├   ├   ├   └── page.tsx
├   ├   ├── edit-answer/
├   ├   ├   └── [id]/
├   ├   ├       └── page.tsx
├   ├   ├── jobs/
├   ├   ├   ├── loading.tsx
├   ├   ├   └── page.tsx
├   ├   ├── profile/
├   ├   ├   ├── [id]/
├   ├   ├   ├   ├── loading.tsx
├   ├   ├   ├   └── page.tsx
├   ├   ├   └── edit/
├   ├   ├       └── page.tsx
├   ├   ├── question/
├   ├   ├   ├── [id]/
├   ├   ├   ├── loading.tsx
├   ├   ├   ├   └── page.tsx
├   ├   ├   └── edit/
├   ├   ├       └── [id]/
├   ├   ├           └── page.tsx
├   ├   └── tags/
├   ├       ├── [id]/
├   ├       ├   ├── loading.tsx
├   ├       ├   └── page.tsx
├   ├       ├── page.tsx
├   ├       └── loading.tsx
├   └── api/
├       ├── openai/
├       ├   └── route.ts
├       ├── rapidapi/
├       ├   └── route.ts
├       └── clerk/
├           └── route.ts
├── components/
├   ├── cards/
├   ├   ├── Answer.tsx
├   ├   ├── JobWrapper.tsx
├   ├   ├── Question.tsx
├   ├   └── User.tsx
├   ├── forms/
├   ├   ├── Answer.tsx
├   ├   ├── Profile.tsx
├   ├   └── Question.tsx
├   ├── home/
├   ├   └── Filters.tsx
├   ├── jobs/
├   ├   └── JobsFilter.tsx
├   ├── shared/
├   ├   ├── AllAnswers.tsx
├   ├   ├── AnswersTab.tsx
├   ├   ├── EditDeleteAction.tsx
├   ├   ├── Filter.tsx
├   ├   ├── Filters.tsx
├   ├   ├── Leftsidebar.tsx
├   ├   ├── Metric.tsx
├   ├   ├── NoResult.tsx
├   ├   ├── Pagination.tsx
├   ├   ├── ParseHTML.tsx
├   ├   ├── ProfileLink.tsx
├   ├   ├── QuestionsTab.tsx
├   ├   ├── RenderTag.tsx
├   ├   ├── Rightsidebar.tsx
├   ├   ├── Stats.tsx
├   ├   ├── Switcher.tsx
├   ├   ├── Votes.tsx
├   ├   ├── navbar/
├   ├   ├   ├── Navbar.tsx
├   ├   ├   ├── Mobile.tsx
├   ├   ├   └── Theme.tsx
├   ├   └── search/
├   ├       ├── GlobalFilters.tsx
├   ├       ├── GlobalResult.tsx
├   ├       ├── GlobalSearch.tsx
├   ├       └── LocalSearchbar.tsx
├   └── ui/ (generated by shadcn-ui)
├       ├── badge.tsx
├       ├── button.tsx
├       ├── form.tsx
├       ├── input.tsx
├       ├── label.tsx
├       ├── menubar.tsx
├       ├── select.tsx
├       ├── sheet.tsx
├       ├── skeleton.tsx
├       ├── switch.tsx
├       ├── tabs.tsx
├       ├── textarea.tsx
├       ├── toast.tsx
├       ├── toaster.tsx
├       └── use-toast.ts
├── constants/
├   ├── filters.ts
├   └── index.ts
├── context/
├   └── ThemeProvider.ts
├── models/
├   ├── answer.ts
├   ├── interaction.ts
├   ├── question.ts
├   ├── tag.ts
├   └── user.ts
├── lib/
├   ├── mongoose.ts
├   ├── utils.ts
├   ├── validations.ts
├   └── actions/
├       ├── answer.action.ts
├       ├── general.action.ts
├       ├── interaction.action.ts
├       ├── job.action.ts
├       ├── question.action.ts
├       ├── tag.action.ts
├       └── user.action.ts
├── public/
├   ├── next.svg
├   ├── vercel.svg
├   └── assets/
├       ├── icons/[[...]].svg
├       └── images/[[...]].{svg,png}
├── styles/
├   ├── prism.css
├   └── theme.css
├── types/
├   ├── index.d.ts
├   └── shared.d.ts
├── .eslintrc.json
├── .gitignore
├── README.md
├── components.json
├── middleware.ts
├── next.config.js
├── package.json
├── postcss.config.js
├── tailwind.config.ts
└── tsconfig.ts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •