This project is an IRC (Internet Relay Chat) server developed from the ground up using C++. It simulates a fully functioning IRC system where users can connect, join channels, communicate, and manage access privileges.
This was a group project where our efforts were split into two major sections:
- Channel Creation: Implemented functionality to create channels and manage client memberships.
- Commands:
KICKβ Remove clients from a channel.INVITEβ Send invites to clients to join a specific channel.TOPICβ Set or view the current topic of the channel.MODEβ Adjust the mode of channels with specific options:iβ Toggle invite-only access.tβ Restrict topic changes to operators.kβ Manage channel keys (passwords).oβ Assign or remove operator privileges.lβ Set user limits for the channel.
- Core IRC Commands:
JOINβ Join a specific channel.PARTβ Leave a channel.PRIVMSGβ Send a private message to a client or a channel.QUITβ Disconnect from the server.- User Authentication:
PASSβ Provide a password to connect to the server.NICKβ Set or change the nickname of a client.USERβ Register a username and real name for the connection.
- Built the underlying server architecture.
- Managed socket creation, client connection handling, and communication protocols.
- Multi-channel support
- Client-to-client messaging
- Real-time channel and user management
- Full implementation of IRC commands including user authentication
- C++
- Socket programming
- Clone the repository:
git clone https://github.com/your-username/irc-server-project.git
- Navigate to the project directory:
cd ft_irc - Compile and run the server:
make ./ircserv port pass
You can use any IRC client (such as LimeChat) to connect to the server:
- Open your IRC client.
- Enter the server address and port.
If you'd like to contribute or suggest improvements, feel free to submit a pull request or open an issue.
This project was a collaboration between:
[FREDRUKUNDO's GitHub] (https://github.com/fredrukundo)
[FRUIT-DU-DEMON's GitHub] (https://github.com/FRUIT-DU-DEMON)