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)