Welcome to Nexus, a real-time messaging platform currently in the planning phase. This project is being developed as a learning experience to explore the core functionalities of modern messaging systems, including real-time communication, group management, and user moderation.
The goal of Nexus is to:
- Learn and experiment with technologies like WebSockets, user authentication, and end-to-end encryption.
- Design a chat application that is scalable, secure, and user-friendly.
- Provide a foundation for implementing advanced features like message queues, caching, and load balancing.
This project is in the development phase, with no features implemented yet. Detailed documentation has been created to outline both functional and non-functional features, ensuring a structured approach to development. For more details, visit my Nexus System Design Documentation.
NOTE: I MIGHT add a translation feature using DeepL’s API to provide real-time language translations. In the future, this could be improved by training models for frequently used languages based on user preferences, delivering more accurate and context specific translations while still using third-party APIs for less frequently used languages. if cost weren’t a concern. This is an effort to help people communicate regardless of language barriers! (There have been multiple times where I couldn’t convey my point as fluently as I wanted in a second language, and I feel this feature could be incredibly helpful in such situations)
- Register & Login (Email/Username & password or OAuth)
- Two-Factor Authentication
- Edit Profile
- Reset Password
- Real-time messaging
- One-to-one messaging (friendship required)
- Group messaging (up to 50 users per group)
- Media sharing
- Message timestamps (sent, delivered, and read)
- Online/Offline status (users can hide their status)
- Message reactions, replies, and edit/delete functionality
- Typing indicators
- Markdown support for formatting messages
- Message pinning
- "Seen by X" for group messages
- Group activity tracking (e.g., "User X joined")
- In-app notifications
- Push notifications (for new messages or mentions)
- Mention Notifications (e.g., "@")
- Search messages and chats (by keywords, date, or user)
- Light/Dark Mode
- Mute/Unmute chat notifications
- End-to-End Encryption for secure communication.
- API health checks and monitoring tools.
- Database indexing for faster queries.
- Caching and load testing for scalability (experimental).
- Design Phase (Complete):
- Documenting core features and system architecture.
- Identifying technologies and tools to use.
- Development Phase (In Progress):
- Start implementing authentication and real-time messaging.
- Focus on user-specific and shared features.
- Testing & Optimization (Upcoming):
- Ensure scalability and security.
- Conduct performance testing for planned non-functional features.