Releases: serangeliscloud/chat
Release list
v1.4.7
Release Notes
New Features
- Added
settings.conffile to allow and disallow duplicated usernames.
Version 1.4.7 - April 22, 2024
New Features
- Introduced
!ClientsListcommand to list all clients connected to the server.
Version 1.4.6 - March 26, 2024
Changes
- Server now refuses connection if a client with the same username is already connected.
Version 1.4.5 - March 26, 2024
Changes
- Denested input listener for improved code structure.
Version 1.4.4 - March 26, 2024
New Features
- Implemented
!whispercommand for private messaging between users.
Version 1.4.3 - March 26, 2024
New Features
- Added command to reload connection.
- Introduced
GetStatuscommand to retrieve someone's status.
Version 1.4.2 - March 25, 2024
Changes
- Username is now loaded from
usr/userInfo.json. - Added status handling in initial message.
- Created
SetStatusfunction for modifying status without accessingusr/userInfo.json.
Version 1.4.1 - March 24, 2024
Changes
- Moved contributing guidelines to documentation.
- Clients' information is now stored in
clientsListon connection and removed on disconnection. - Added commands to retrieve information about connected clients.
Version 1.4.0 - March 24, 2024
These updates enhance user experience, improve server functionality, and ensure smoother communication between clients.
What's Changed
- 1.3.1 by @serangelicloud in #12
- updated for developers by @serangelicloud in #13
- 1.3.2 by @serangelicloud in #15
- 1.3.3 by @serangelicloud in #16
- 1.4.0 by @serangelicloud in #17
- 1.4.1 by @serangelicloud in #18
- 1.4.2 by @serangelicloud in #19
- 1.4.2 by @serangelicloud in #20
- readability improvements by @serangelicloud in #21
- 1.4.3 by @serangelicloud in #22
- Better Documentation by @serangelicloud in #23
- 1.4.4 by @serangelicloud in #24
- 1.4.5 by @serangelicloud in #25
- 1.4.6 by @serangelicloud in #26
- 1.4.7 by @serangelicloud in #27
Full Changelog: v1.3.3...v1.4.7
1.3.3
Release Notes
Version 1.3.3 - March 21, 2024
- Added
.gitignorefile to exclude unnecessary files from version control.
Version 1.3.2 - March 21, 2024
- Added contributing guidelines to the project.
Version 1.3.1 - March 19, 2024
- Implemented encryption for file sharing to enhance security.
- Fixed a typo in the
package.jsonfile.
Version 1.3.0 - March 11, 2024
- Introduced a file sharing system to allow users to upload and download files during chats.
Client Component (client.js)
Initial Setup and Dependencies
- Utilizes the
net,readline, andfsmodules from Node.js. - Encryption and decryption functionalities are implemented using the
crypto-jslibrary.
Media
- Users can now upload files to the server using the
!sendFile [filePath]command. - Uploaded files are converted to Base64 for better compatibility and encrypted for security.
- File download functionality is enabled using the
!downloadFile [filePath]command. - Downloaded files are stored in the
ClientDownloadsfolder.
Server Component (server.js)
Initial Setup and Dependencies
- Utilizes the
netmodule from Node.js.
Media
- Supports file uploads from clients, which are saved in the
savedFilesfolder. - Files are saved in JSON format with sender information and can be downloaded by other clients.
v1.2.4
This program consists of two scripts: client.js and server.js, which together create a simple chat application. Here's a description of each:
-
client.js:
- This script allows a user to connect to the chat server and send messages.
- It prompts the user to enter a username and establishes a connection with the server over TCP.
- Upon connection, it sends an initial message to the server for authentication purposes.
- It encrypts user messages using a simple encryption algorithm before sending them to the server.
- It listens for user input from the command line and sends messages or commands to the server.
- It decrypts and displays incoming messages from the server, distinguishing between server-generated messages and messages from other users.
- It gracefully handles disconnection from the server.
-
server.js:
- This script creates a TCP server that listens for incoming connections from clients.
- Upon connection, it assigns a unique ID to the client and stores its socket for communication.
- It validates the client's version number upon receiving an initial message and allows or refuses the connection based on compatibility.
- It broadcasts messages sent by clients to all other connected clients.
- It handles special commands, such as sending the current server time upon request.
- It sends join and leave messages to all clients when a user joins or leaves the chat.
- It gracefully handles client disconnection.
enchancements
- added encryption
- added logic to create commands
- added proofing to inputs in order to avoid being able to send empty messages
- colors to make the interface easier to read
What's Changed
- 1.2.0 by @serangelicloud in #5
- 1.2.1 by @serangelicloud in #6
- 1.2.2 by @serangelicloud in #7
- 1.2.3 by @serangelicloud in #8
- 1.2.4 by @serangelicloud in #9
Full Changelog: v1.2.0...v1.2.4
chat 1.1.0
Overview:
The Chat Application v1.0 is a simple yet effective communication tool that allows users to engage in real-time text-based conversations over a network. Built using Node.js and TCP sockets, this release introduces the core functionalities necessary for basic chat functionality.
Key Features:
-
Server-Side Functionality:
- Creation of a TCP server to handle client connections.
- Management of client connections, including assigning unique client IDs.
- Broadcasting messages to all connected clients.
- Handling initial messages from clients for authentication and version validation.
-
Client-Side Functionality:
- Establishment of TCP client connections to the server.
- Capturing user input for setting up a username and sending messages.
- Receiving and displaying messages from other users.
- Graceful disconnection from the server upon user exit.
Improvements and Enhancements:
-
Scalability: The architecture allows for easy scalability to accommodate a larger number of concurrent users by leveraging Node.js' asynchronous and event-driven nature.
-
Customization: Developers can extend the application by adding features such as user authentication, message encryption, or implementing a graphical user interface (GUI) for the client.
Release Notes:
- New Features:
- Basic server and client functionality implemented, including message broadcasting and user interaction.
- Initial message handling for client authentication and version validation.
- Enhancements:
- Error handling mechanisms implemented to ensure robustness and stability.
- Graceful disconnection feature added to provide a seamless user experience.
- Known Issues:
- Limited error handling for edge cases such as unexpected client behavior or network disruptions.
- Lack of advanced features such as user authentication or message encryption in this initial release.
Future Roadmap:
- Version 2.0: Focus on enhancing security features, including user authentication and message encryption.
- Version 3.0: Implementing additional functionalities such as file sharing, message persistence, and support for multimedia content.
- Version 4.0: Introducing scalability improvements to handle a larger user base and optimizing performance for better responsiveness.
Conclusion:
The Chat Application v1.0 lays the foundation for a robust and scalable communication platform. With its simple yet powerful features, it serves as a versatile tool for real-time collaboration and community engagement. As we continue to iterate and improve upon this release, we look forward to delivering an even more seamless and feature-rich experience in future versions.
What's Changed
- Serangelicloud 1.0.0a by @serangelicloud in #1
- 1.1.0 by @serangelicloud in #2
New Contributors
- @serangelicloud made their first contribution in #1
Full Changelog: v1.0.0...1.1.0
initial release
This repository contains code for a simple chat server and client implemented in Node.js. The chat server allows multiple clients to connect and exchange messages in real-time, while the client provides a command-line interface for interacting with the server.