A Chatango-like live chat application with the following features:
- User can login as guest
- User can login as Gmail/FB
- Apps connect to Giphy
- Live chat can be embedded to other websites
- If chat embedded, the chat will show as bubble and when click it will open the chatbox area
- Real-time messaging with Socket.IO
- Multiple authentication options (Guest, Google, Facebook)
- Giphy integration for sharing GIFs
- Embeddable chat widget with bubble UI
- Persistent chat history with MongoDB
- Responsive design for all devices
- Admin dashboard for user/room/message management
- Node.js (v18 or higher)
- Docker and Docker Compose (recommended)
- Giphy API Key (required for GIF functionality)
# Clone the repository
git clone git@github.com:leonyonz/live-chat-server.git
cd live-chat-server
# Create environment file
cp .env.example .env
# Edit .env to add your Giphy API key and other configurations
# Start the application
docker-compose up --build
# Access the application at http://localhost:3000# Clone the repository
git clone git@github.com:leonyonz/live-chat-server.git
cd live-chat-server
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Edit .env to configure your settings
# Run the application
npm run dev
# Access the application at http://localhost:3000For detailed documentation, please refer to our Wiki:
- Home
- Setup and Installation Guide
- Configuration Guide
- Deployment Guide
- Admin Dashboard Guide
- API Documentation
- Debugging Guide
- Changelog
You can also browse the documentation directly in the repository at docs/wiki/.
To update the GitHub wiki with the latest documentation from the repository, you can use the provided scripts in the repository that automate the process of syncing documentation to the wiki.
live-chat-server/
├── config/ # Configuration files
├── models/ # MongoDB schemas
├── routes/ # API routes
├── services/ # Business logic
├── public/ # Frontend assets
├── tests/ # Unit and integration tests
├── wordpress-plugin/ # WordPress integration plugin
├── scripts/ # Utility scripts
├── middleware/ # Express middleware
└── docs/ # Documentation files
- Real-time Messaging: Implemented with Socket.IO for instant message delivery
- Multiple Authentication Options:
- Guest login (no account required)
- Google OAuth integration
- Facebook OAuth integration
- Giphy Integration: Search and send animated GIFs in chat
- Embeddable Chat Widget:
- Bubble UI that expands to full chat when clicked
- Can be embedded on any website using the embed.js script
- Persistent Chat History: Messages stored in MongoDB
- Responsive Design: Works on desktop and mobile devices
- Admin Dashboard: Comprehensive management interface
npm start: Run the applicationnpm run dev: Run the application with nodemon for developmentnpm test: Run unit testsnpm run test:all: Run all tests
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue on GitHub or contact the maintainers.