A modern, feature-rich Q&A platform inspired by Stack Overflow
Features • Tech Stack • Getting Started • API Documentation • Contributing
StackIt is a comprehensive Q&A platform that enables developers and enthusiasts to ask questions, share knowledge, and build a community around learning. Built with modern web technologies, it offers real-time interactions, voting systems, and notification features.
- 🔐 JWT Authentication - Secure user registration and login
- ❓ Question Management - Create, edit, and manage questions with rich text support
- 💬 Answer System - Comprehensive answering with markdown support
- 🏷️ Tag System - Organize content with categorized tags
- 👍 Voting System - Upvote/downvote answers to highlight quality content
- 📢 Real-time Notifications - Stay updated with instant notifications
- 🔗 User Mentions - Tag users with @mentions in answers
- 📱 Responsive Design - Optimized for all device sizes
- 🔍 Smart Searching - Uses fuzzy searching to find the closest matching posts even with typos or partial queries
- 🎨 Modern UI - Clean, intuitive interface with Tailwind CSS
- Code Quality: ESLint, Prettier
- Testing: Jest, Supertest
- Build: SWC, TypeScript v5.7.3
├── be/ # Backend NestJS Application
│ ├── src/
│ │ ├── answers/ # Answer module (CRUD, GraphQL resolvers)
│ │ ├── auth/ # Authentication guards & decorators
│ │ ├── notifications/ # Notification system
│ │ ├── questions/ # Question module (CRUD, GraphQL resolvers)
│ │ ├── tags/ # Tag management system
│ │ ├── users/ # User management & authentication
│ │ ├── votes/ # Voting system for answers
│ │ ├── app.module.ts # Main application module
│ │ └── main.ts # Application entry point
│ └── test/ # E2E test files
│
└── fe/ # Frontend Next.js Application
├── src/
│ └── app/ # Next.js App Router
│ ├── layout.tsx # Root layout component
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
└── public/ # Static assets
- Node.js (v18 or higher)
- MongoDB (v6.0 or higher)
- npm or yarn
-
Navigate to backend directory:
cd be -
Install dependencies:
npm install
-
Environment Configuration: Create a
.envfile in thebedirectory:# Database MONGODB_URI=mongodb://localhost:27017/stackit-qa # Authentication JWT_SECRET=your-super-secret-jwt-key-here # Server PORT=3000 NODE_ENV=development
-
Start the development server:
npm run start:dev
-
Verify installation:
- API: http://localhost:3000
- GraphQL Playground: http://localhost:3000/graphql
-
Navigate to frontend directory:
cd fe -
Install dependencies:
npm install
-
Environment Configuration: Create a
.env.localfile in thefedirectory:NEXT_PUBLIC_API_URL=http://localhost:3000/graphql NEXT_PUBLIC_APP_NAME=StackIt
-
Start the development server:
npm run dev
-
Access the application:
- Frontend: http://localhost:3001
- Ready for development! 🎉
The backend exposes a GraphQL API with the following main types:
- User: User management and authentication
- Question: Question creation and management
- Answer: Answer system with rich content
- Vote: Voting system for answers
- Tag: Content categorization
- Notification: Real-time user notifications
When running in development mode, access the interactive GraphQL Playground at:
http://localhost:3000/graphql
StackIt Development Team
| Role | Name | |
|---|---|---|
| Team Lead (TL) | Yash Bharvada | kingisright67@gmail.com |
| Developer | Kushal Desai | kushal.desaiofficial@gmail.com |
| Developer | Shrey Lakhtaria | shreylakhtaria@gmail.com |
| Developer | Aaleya Boxwala | aaleya.boxwala@gmail.com |
- Inspired by Stack Overflow's community-driven approach
- Built with amazing open-source technologies
- Thanks to all contributors and the developer community
Made with ❤️ by the StackIt Team