A cutting-edge, modern group chat application built with Node.js, Socket.IO, and Bootstrap. Features a unique brand identity, animated transfer screens, advanced UI components, and powerful functional features for the ultimate communication experience.
- Unique Brand Identity: Custom Chatify branding with animated gradients and effects
- Animated Transfer Screen: Smooth loading experience with particle effects and progress indicators
- Advanced UI Components: Enhanced chat interface with file uploads, emoji picker, and reactions
- Responsive Layout: Works perfectly on desktop, tablet, and mobile devices
- Custom Typography: Inter font family for a modern, clean look
- Smooth Animations: Fade-in, slide-in, bounce, and gradient shift effects throughout
- Real-time Messaging: Instant message delivery with Socket.IO
- File Upload & Sharing: Drag-and-drop file uploads with progress indicators
- Advanced Emoji Picker: Categorized emoji picker with recent emojis
- Message Reactions: React to messages with emojis and see reaction counts
- @Mentions: Mention users with @username autocomplete
- Message Threading: Start threaded conversations (context menu)
- Voice Messages: Voice recording capability (placeholder)
- Message Search: Search through chat history
- Typing Indicators: See when others are typing with smooth animations
- Message History: Navigate through previous messages with arrow keys
- Auto-resize Input: Message input automatically adjusts height
- Keyboard Shortcuts:
Ctrl/Cmd + Kto focus message inputEscapeto clear message input↑/↓arrows to navigate message history
- User Avatars: Auto-generated initials-based avatars
- Status Indicators: Online/offline status with colored indicators
- Member List: Real-time participant list with status updates
- User Notifications: Desktop notifications for new messages
- Real-time Communication: Powered by Socket.IO
- Modern Backend: Express.js server with clean architecture
- Modular Design: Separated concerns with utility modules
- Error Handling: Robust error handling and user feedback
- Cross-platform: Works on all modern browsers
-
Clone the repository
git clone <repository-url> cd group-chat-app
-
Install dependencies
npm install
-
Start the server
npm start
-
Open your browser Navigate to
http://localhost:3000
group-chat-app/
├── public/
│ ├── index.html # Landing page
│ ├── styles.css # Main stylesheet
│ ├── chat.js # Chat functionality
│ └── chat-enhancements.js # Enhanced features
├── views/
│ └── chat.html # Chat interface
├── utils/
│ ├── users.js # User management
│ └── messages.js # Message formatting
├── server.js # Main server file
├── package.json # Dependencies
└── README.md # This file
- Enter your display name
- Enter a server code (room name)
- Click "Join Server"
- Type messages in the input field
- Use the emoji picker for reactions
- Navigate message history with arrow keys
- See who's online in the member list
Ctrl/Cmd + K: Focus message inputEscape: Clear message input↑: Previous message in history↓: Next message in history
The application uses CSS custom properties for easy theming. Main color variables are defined in public/styles.css:
:root {
--discord-bg: #36393f;
--discord-accent: #5865f2;
--discord-text: #dcddde;
/* ... more variables */
}The modular design makes it easy to add new features:
- Chat features:
public/chat-enhancements.js - User management:
utils/users.js - Message handling:
utils/messages.js
npm run devThis uses nodemon for automatic server restarts.
- Create new modules in appropriate directories
- Update the main files to import new functionality
- Add corresponding CSS for styling
- Test thoroughly across different browsers
- Complete UI Redesign: Transformed from basic Bootstrap to Discord-like interface
- Enhanced User Experience: Added animations, better typography, and smooth interactions
- Advanced Features: Emoji picker, message history, keyboard shortcuts
- Better User Management: Improved avatars, status indicators, and member display
- Responsive Design: Optimized for all screen sizes
- Modern Styling: CSS Grid, Flexbox, and custom properties for maintainable code
- Chrome 80+
- Firefox 75+
- Safari 13+
- Edge 80+
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
- Inspired by Discord's design language
- Built with Bootstrap 5 and Socket.IO
- Icons provided by Bootstrap Icons
- Fonts by Google Fonts (Inter)
DiscordChat - Where conversations come alive! 🚀