A Chat App for CS471 Senior Capstone I
CSChat is a real-time chat room application that allows multiple users to communicate simultaneously. Users can join different chat rooms, send messages, and view messages from other users. The application employs encryption for secure communication between clients and the server.
- Real-time messaging
- Self-assigned usernames (no authentication required)
- Join existing chat rooms
- View messages from other users
- Encrypted communication for enhanced security
This section is intended for:
- Users who downloaded the basic standalone executable application.
- Server hosters who do not wish to modify the code to create a custom chat room.
Download the latest release files and run them as standalone executables.
- Open the application: Launch the executable file
- Joining a Chat Room: Enter the following information, provided by the chat room host:
- Server: The IP address or hostname of the server.
- Port: The port number the server is listening on (default is 45000).
- Username: Your desired username to use in the chat room.
- Join the Chat Room: Click "Join" at the bottom of the application window.
- Send Messages: Type your message in the input field and press "Enter" or click the "Send" button.
- Recieve Messages: Messages from other users will automatically appear in the chat window.
To host a chat room using the standalone server executable:
-
Launch the Server Executable:
- Open the server executable file
- The server listens on a default port of
45000.
-
Provide Connection Information:
- Share your computer's IP address and the port number (default is
45000) with users who wish to connect. - Users can find your local IP address by using commands such as
ipconfig(Windows) orifconfig(Linux/Mac) in the terminal.
- Share your computer's IP address and the port number (default is
-
Inform Users: Let users know they need to enter the server IP address and port in their client application to connect to your chat room.
This section is intended for those who wish to modify the code to create a custom client and server.
To get the source code in order to modify, go into a desired file location, enter the following command:
https://github.com/RootCellar/chat-app.git
After modifying the source code, you must follow the following steps to compile the client and server executables
To build the application from source, first install PyInstaller:
python3 -m pip install pyinstaller
.\bin\build.bat
bin/build.sh
The executable files will be found in dist, which can be used in a number of ways, such as:
- Shared and distributed, which can be opened with ease.
- Enter the following commands in a terminal to open the executables from the terminal.
dist/server
...
dist/client
If the client code was not modified, the instructions for the user will be no difference than the unmodified experience.
- Open the application: Launch the executable file
- Joining a Chat Room: Enter the following information, provided by the chat room host:
- Server: The IP address or hostname of the server.
- Port: The port number the server is listening on (default is 45000).
- Username: Your desired username to use in the chat room.
- Join the Chat Room: Click "Join" at the bottom of the application window.
- Send Messages: Type your message in the input field and press "Enter" or click the "Send" button.
- Recieve Messages: Messages from other users will automatically appear in the chat window.
If the server code was not modified, the instructions for the host will be no difference than the unmodified experience
-
Launch the Custom Server Executable:
- Open the server executable file
- The server listens on a default port of
45000.
-
Provide Connection Information:
- Share your computer's IP address and the port number (default is
45000) with users who wish to connect. - Users can find your local IP address by using commands such as
ipconfig(Windows) orifconfig(Linux/Mac) in the terminal.
- Share your computer's IP address and the port number (default is
-
Inform Users: Let users know they need to enter the server IP address and port in their client application to connect to your chat room.
- Contributors: Thanks to everyone who has contributed to the project. Contributers include:
- Darian Marvel
- Orlandis Brown
- Dylan Maltos
- Anand Egan
- Python: The programming language used to build this application.
- NaCl (Networking and Cryptography Library): For providing secure encryption features used in the chat application.
- Socket Programming: For enabling real-time communication between clients and the server.