Design and develop StackIt, a minimal Question-and-Answer platform that supports collaborative learning and structured knowledge sharing. The platform should be simple, intuitive, and focused on the core experience of asking and answering questions within a community.
The system must:
- Allow users to ask and answer questions using a rich text editor.
- Implement voting, tagging, and answer acceptance features.
- Include user roles (Guest, User, Admin) with appropriate permissions.
- Support notifications and moderation controls for admins.
StackIt is a lightweight and focused Q&A platform tailored for learning communities. It emphasizes simplicity, collaboration, and meaningful interactions without unnecessary complexity.
Role | Permissions |
---|---|
Guest | View all questions and answers |
User | Register, log in, post questions and answers, vote on answers |
Admin | Moderate content, ban users, send announcements, download reports |
- Submit questions with:
- Title – Concise and descriptive
- Description – Created using a rich text editor
- Tags – Multi-select input (e.g.,
React
,JWT
)
Supports formatting options for both questions and answers:
- Bold, Italic, Strikethrough
- Numbered & Bullet lists
- Emoji insertion
- Hyperlinks
- Image uploads
- Text alignment: Left, Center, Right
- Logged-in users can answer any question
- Full formatting supported via the same rich text editor
- Users can upvote/downvote answers
- Question owners can mark one answer as accepted
- Mandatory tags on questions
- Helps in content discovery and categorization
- Bell icon shows unread count
- Notifications for:
- Answers to user’s question
- Comments on user’s answers
- Mentions via
@username
- Dropdown view for recent activity
Admins have access to moderation and analytics tools:
- Reject inappropriate or spammy questions
- Ban users violating platform policies
- Send platform-wide messages (e.g., feature updates, downtime alerts)
- Download reports: user activity, feedback, question/answer statistics
- Frontend: Next.js 15.3.5, React 19, TypeScript, Tailwind CSS
- Backend: Next.js API Routes (Serverless)
- Database: MongoDB
- Text Editor: TipTap with rich text extensions
- Authentication: Clerk
- UI Components: Radix UI primitives
- Styling: Tailwind CSS with custom theme
- Animation: Framer Motion
- Icons: Lucide React
StackIt/
├── app/ # Next.js app directory
│ ├── admin/ # Admin dashboard pages
│ ├── api/ # API routes
│ ├── ask/ # Question creation page
│ ├── question/ # Question detail pages
│ ├── search/ # Search results page
│ ├── sign-in/ # Authentication pages
│ └── sign-up/ # User registration pages
├── components/ # React components
│ ├── editor/ # Rich text editor components
│ └── ui/ # Reusable UI components
├── lib/ # Utility functions and types
└── public/ # Static assets
- Node.js 18+ [Download]
- MongoDB database [MongoDB Atlas]
- Clerk account for authentication [Sign up]
-
Fork the techy4shri/stackit repository:
-
Clone the repository:
git clone https://github.com/techy4shri/stackit.git cd stackit
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
npm run build
npm start
npm run dev
- Start development servernpm run build
- Build for productionnpm start
- Start production server
Role | GitHub |
---|---|
Team Lead | Garima |
Member | Swati Sharma |
Member | Priyanshu Aggarwal |