TetherSync is a modern, full-featured chat application built for secure, scalable, and seamless communication. It combines advanced real-time messaging capabilities with robust authentication, flexible infrastructure, and a polished user experience.
- JWT-based authentication with refresh tokens for secure sessions.
- Role-based access control: user, admin, and super-admin roles.
- Social login: Google and GitHub OAuth integration.
- One-to-one messaging, group chats, and channels.
- Typing indicators, read receipts, and message reactions.
- Message delivery states: sent, delivered, seen.
- Media sharing: images, videos, and files.
- Polls: Create and participate in polls within chats.
- Search functionality: Full-text indexing in MongoDB for fast message and contact search.
- Native WebSocket server (
ws
) with custom rooms/namespaces logic. - Efficient message storage: MongoDB with indexing by userId and roomId.
- Offline message queueing: Redis for reliable delivery.
- Rate limiting & IP throttling to prevent abuse.
- Push notifications: Web and PWA support.
- Presence indicators: online, offline, and away statuses.
- End-to-end encryption for direct messages.
- Admin dashboard: Manage users, messages, and bans.
- Bot integration: AI chatbot auto-responds to specific keywords.
- Dockerized frontend and backend for easy deployment.
- CI/CD pipeline: Automated builds and deployments with GitHub Actions.
- Horizontal scaling: Redis pub/sub synchronizes WebSocket events across multiple servers.
- Environment configuration: Uses
.env
files for sensitive variables.
- Modern, responsive UI: Built with Tailwind CSS, supports dark/light themes.
- Infinite scroll for chat history.
- Drag-and-drop file upload with previews.
- Clone the repository:
git clone https://github.com/yourusername/TetherSync.git
- Install dependencies:
cd TetherSync npm install
- Run the application:
npm start
Contributions are welcome! Please read the contributing guidelines before submitting a pull request.
This project is licensed under the MIT License.
For support or feedback, open an issue or contact the maintainer.
Side Note (to be deleleted) :- Home -> (Login/SignUp) -> Dashboard -> Chat/Admin Panel