A full-stack MERN community platform that combines discussion forums and real-time communication. Users can create discussion threads, post comments, manage profiles, receive notifications, and communicate instantly through Socket.IO-powered chat channels.
Community Discussion Forum with Real-Time Chat is a modern full-stack web application inspired by platforms like Reddit, Discord, and Slack.
The platform provides two powerful communication methods:
- Structured discussions through forum posts and comments
- Instant communication through real-time chat
Users can register, log in, create discussions, comment on posts, join chat channels, edit profiles, and interact with other community members in real time.
This project demonstrates practical Full Stack Development skills including frontend development, backend API development, database design, authentication, and real-time communication.
Many online communities use separate tools for discussions and live communication. Forums are useful for organized conversations, while chat applications are useful for instant interactions.
This project combines both approaches into a single platform where users can:
- Create and participate in discussions
- Add comments and feedback
- Communicate instantly using real-time chat
- Manage profiles and community participation
- Receive updates and notifications
The result is a complete community collaboration platform.
- User Registration
- User Login
- JWT Authentication
- Secure Password Storage
- Protected Routes
- Create Discussion Threads
- View Discussion Listings
- Discussion Detail Pages
- Categories and Tags
- Upvote and Downvote Actions
- Flag Discussion Feature
- Add Comments
- View Comments
- Discussion Engagement
- Community Interaction
- Socket.IO Integration
- Channel-Based Communication
- Instant Messaging
- Online User Indicator
- Multi-Browser Real-Time Testing
- Edit Profile
- Update Name
- Add Avatar URL
- Add Skills
- Update Bio
- Notification Panel
- Read Notifications
- Community Activity Tracking
- Community Statistics
- Discussion Feed
- Search Interface
- Navigation Sidebar
- Modern Responsive Layout
The chat module is implemented using Socket.IO.
Features include:
- Join Community Channels
- Send Messages Instantly
- Receive Messages Without Refreshing
- Online User Tracking
- Multi-Browser Synchronization
Browser 1:
Hello everyone! I am testing the Community Discussion Forum project.Browser 2:
Message appears instantly without page refresh.This demonstrates bidirectional real-time communication between users.
- React.js
- Vite
- Tailwind CSS
- React Router DOM
- Axios
- Socket.IO Client
- Node.js
- Express.js
- MongoDB Atlas
- Mongoose
- JWT Authentication
- bcryptjs
- Socket.IO
- dotenv
- cors
- MongoDB Atlas
- VS Code
- Git
- GitHub
- PowerShell
- Thunder Client / Postman
User
│
▼
React Frontend
│
├── REST API Requests
│
▼
Express Backend
│
▼
MongoDB Atlas
│
└── Data Storage
React Frontend
│
▼
Socket.IO Client
│
▼
Socket.IO Server
│
▼
Real-Time Message BroadcastUser Registration
↓
User Login
↓
Dashboard
↓
Create Discussion
↓
View Discussion
↓
Add Comment
↓
Join Chat Channel
↓
Send Real-Time Messages
↓
Receive Notifications
↓
Update ProfileCommunity-Discussion-Forum-RealTime-Chat/
│
├── client/
│ ├── src/
│ ├── package.json
│ ├── .env.example
│ └── index.html
│
├── server/
│ ├── config/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── sockets/
│ ├── seed/
│ ├── server.js
│ ├── package.json
│ └── .env.example
│
├── docs/
│ └── screenshots/
│
├── README.md
├── .gitignore
└── .env.exampleStores:
- Name
- Password
- Bio
- Skills
- Avatar
Stores:
- Title
- Description
- Tags
- Votes
- Author
Stores:
- Comment Text
- Discussion Reference
- Author Reference
Stores:
- Channel Messages
- Sender Information
- Timestamps
Stores:
- Notification Content
- User Reference
- Read Status
POST /api/auth/register
POST /api/auth/login
GET /api/auth/meGET /api/discussions
POST /api/discussions
GET /api/discussions/:id
PUT /api/discussions/:id
DELETE /api/discussions/:id
POST /api/discussions/:id/voteGET /api/comments/:discussionId
POST /api/comments/:discussionIdGET /api/profile
PUT /api/profileGET /api/notifications
PUT /api/notifications/read-alljoin_room
send_message
typing_start
typing_stopreceive_message
user_online
user_offline
notification
typinggit clone https://github.com/VaidehiDeore/Community-Discussion-Forum-RealTime-Chat.git
cd Community-Discussion-Forum-RealTime-ChatPORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
CLIENT_URL=http://localhost:5173VITE_API_URL=http://localhost:5000/api
VITE_SOCKET_URL=http://localhost:5000.env files to GitHub.
Use .env.example instead.
cd server
npm install
npm run devExpected Output:
MongoDB Connected Successfully
Server running on port 5000
Socket.IO server readyBackend URL:
http://localhost:5000Open another terminal:
cd client
npm install
npm run devExpected Output:
VITE ready
Local: http://localhost:5173Frontend URL:
http://localhost:5173Place screenshots inside:
docs/screenshots/Required Screenshots:
auth-page.png
dashboard.png
create-discussion.png
discussion-comments.png
real-time-chat.png
mongodb-collections.pngTest the following modules:
- Register User
- Login User
- Create Discussion
- View Discussion
- Upvote Discussion
- Flag Discussion
- Add Comment
- View Comment
- Open Two Browsers
- Join Same Channel
- Send Message
- Receive Message Instantly
- Update Profile Information
- Open Notification Panel
- Verify Data in MongoDB Atlas
Through this project I learned:
- Full Stack MERN Development
- React Component Architecture
- Express API Development
- MongoDB Database Design
- Mongoose Modeling
- JWT Authentication
- Password Security using bcrypt
- REST API Design
- Socket.IO Real-Time Communication
- Frontend and Backend Integration
- Profile Management Systems
- Notification Systems
- Git and GitHub Workflow
- Modern UI Development
- Debugging and Testing Techniques
- Direct Messaging
- Typing Indicators
- Moderator Dashboard
- Admin Dashboard
- Bookmark Discussions
- Rich Text Editor
- Email Notifications
- File Upload Support
- Advanced Search
- Deployment on Cloud Platforms
This project demonstrates both traditional web application development and modern real-time communication systems.
It showcases:
- Frontend Development Skills
- Backend Development Skills
- Database Management
- Authentication Systems
- Real-Time Communication
- Software Architecture
- Full Stack Engineering Practices
Making it highly relevant for:
- Full Stack Developer Roles
- MERN Stack Developer Roles
- Backend Developer Roles
- Frontend Developer Roles
- Software Engineer Roles
Vaidehi Deore




